none
WM5上面创建顶层窗口(没有父窗口的窗口)的问题? RRS feed

  • 问题

  • Win32:
        在程序主窗口的WM_CREATE消息里面创建了一个顶层窗口。
        MyRegisterClass(m_hInstance, 窗口类名)
        m_hWnd = CreateWindow(窗口类名, TEXT(""), WS_POPUP | WS_VISIBLE,
    0, 0, 240, 320, NULL, (HMENU)nID, m_hInstance, NULL);
        ShowWindow(m_hWnd, SW_SHOWNOACTIVATE);
        创建是创建成功了,但是显示在前台的不是该顶层窗口,而仍是主窗口。

        后来加了句,SetWindowPos(m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
      总算把该顶层窗口显示在了前台,但当按下手机按键时,首先截获消息的却是主窗口,而非顶层窗口。只有在单击了一下顶层窗口后,再按下按键,该顶层窗口才获得按键消息。这说明顶层窗口不处于激活状态。

        怎么WM5下面的窗口这样的呀?????????????理论上应该说创建一个窗口后,这个窗口就应该显示在前面的呀。。。。。。。。。。。。
    2009年6月9日 9:49

答案

  • ShowWindow(m_hWnd, SW_SHOWNOACTIVATE);
    你没有把创建的窗体激活,窗体没有获取焦点 首先截获消息的却是主窗口,而非顶层窗口
    2009年6月9日 10:12