0

当鼠标移过非透明区域时,我使用 WS_EX_LAYERED 窗口并收到 WM_MOUSEMOVE 消息。到目前为止,一切都很好。

  • 当我按住 SHIFT 或 CTRL 并移动鼠标时,WM_MOUSEMOVE/wParam 不指示键状态。

  • 当我在移动鼠标的同时按住 SHIFT 或 CTRL 和任何鼠标按钮时,WM_MOUSEMOVE/wParam 确实指示键状态。

  • 当我单击窗口(假设设置焦点)并再次按住 SHIFT 或 CTRL 时,WM_MOUSEMOVE / wParam 不会指示键状态。

知道这里有什么吗?我怀疑它与窗口的活动焦点状态有关。

4

1 回答 1

-1

我相信,如果您需要在窗口不在焦点时获取输入,则必须使用以下方法:

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowshookexa?redirectedfrom=MSDN

除此之外,如果您只是移动鼠标,您可以假设键状态没有改变,不是吗?

于 2021-03-02T07:12:22.987 回答