失去焦点后无法获得鼠标点击事件

时间:2012-03-05 08:40:38

标签: c++ winapi

我正在处理一个已存在的项目并试图为其添加一个额外的窗口。我设法创建窗口但是如果我调用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

1 个答案:

答案 0 :(得分:0)

您需要提供更多信息以明确问题。无论如何,鼠标消息只接收鼠标悬停在其上的窗口(客户端或非客户端区域),以及调用SetCapture的窗口。所以你的问题"可能不是由于"错误的消息处理",而是因为对输入消息概念的误解。此外,我认为禁用的窗口不会收到输入消息(那些被调用EnableWindow(hWnd, FALSE)的消息)。