我正在处理一个已存在的项目并试图为其添加一个额外的窗口。我设法创建窗口但是如果我调用ShowWindow(m_hwnd,SW_SHOW)来显示我的额外窗口,则原始窗口无法获得鼠标单击事件。但是原始窗口可以获得鼠标移动事件。
看起来原始窗口没有正确处理某些事件,因此无法通过鼠标点击激活它,但我不知道哪个事件触发了激活。
这是原始窗口处理的消息列表:
WM_CLOSE
WM_MOUSEACTIVATE
WM_ENTERSIZEMOVE
WM_EXITSIZEMOVE
WM_ENTERMENULOOP
WM_EXITMENULOOP
WM_HOTKEYWM_SYSCHAR
WM_CHAR
WM_SYSKEYDOWN
WM_SETCURSOR
WM_MOUSEMOVE
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK
WM_MOVE
WM_SIZE
WM_ACTIVATE
WM_SETFOCUS
WM_KILLFOCUS
WM_WINDOWPOSCHANGED
WM_STYLECHANGED
WM_INPUTLANGCHANGE
答案 0 :(得分:0)
您需要提供更多信息以明确问题。无论如何,鼠标消息只接收鼠标悬停在其上的窗口(客户端或非客户端区域),以及调用SetCapture
的窗口。所以你的问题"可能不是由于"错误的消息处理",而是因为对输入消息概念的误解。此外,我认为禁用的窗口不会收到输入消息(那些被调用EnableWindow(hWnd, FALSE)
的消息)。