当我按下修饰键(shift 或 control)单击时,我的 WndProc 没有看到鼠标向上通知。我看到它们没有修饰键,我看到带有修饰键的鼠标按下通知。
我正在尝试跟踪我没有编写的组件中的用户操作,因此我使用 Windows 窗体 NativeWindow 包装器(包装组件)从 WndProc() 方法获取 Windows 消息。
我尝试跟踪收到的通知,我看到的唯一线索是 WM_CAPTURECHANGED。当我收到 WM_LBUTTONDOWN 消息时,我尝试调用 SetCapture,但它没有帮助。
没有修饰符(跳过油漆、计时器和 NCHITTEST 消息):
WM_PARENTNOTIFY
WM_MOUSEACTIVATE
WM_MOUSEACTIVATE
WM_SETCURSOR
WM_LBUTTONDOWN
WM_SETCURSOR
WM_MOUSEMOVE
WM_SETCURSOR
WM_LBUTTONUP
使用修饰符(跳过油漆、计时器和 NCHITTEST 消息):
WM_KEYDOWN
WM_PARENTNOTIFY
WM_MOUSEACTIVATE
WM_MOUSEACTIVATE
WM_SETCURSOR
WM_LBUTTONDOWN
WM_SETCURSOR (repeats)
WM_KEYDOWN (repeats)
WM_KEYUP
如果我长时间按住鼠标按钮,我通常可以收到 WM_LBUTTONUP 通知,但应该可以使其更具响应性..
编辑:在释放鼠标按钮之前,我尝试在感兴趣的组件外部进行控制单击并将光标移动到其中,然后我确实收到了 WM_LBUTTONUP 通知,所以看起来组件在鼠标按下时正在捕获鼠标. 当另一个窗口捕获鼠标时,有什么方法可以接收该通知?
谢谢。