【发布时间】:2012-11-06 07:04:23
【问题描述】:
我正在尝试制作一个程序,该程序将使用鼠标下的颜色值更新另一个窗口文本输入。问题是我不知道我把这张支票WM_MOUSEMOVE放在哪里,因为我自己还没有创建桌面窗口。
我尝试创建自己的 DialogBox 来显示值,但 WM_MOUSEMOVE 只能在该 DialogBox 内工作,而不是在它之外。
【问题讨论】:
-
您可以随时使用鼠标钩,或类似
GetCursorPos。 -
我很想被证明是错误的,但我认为如果你想要从桌面上的任何地方捕获鼠标事件,你可能会不走运。一般来说,鼠标事件只会被光标所在的小部件捕获,就像你的对话框一样。
-
@MattPhillips,鼠标钩子是一种面向事件的方式来跟踪任何地方的鼠标事件。
-
@chris 问题是一旦在对话框之外,即使你用鼠标发疯,也不会触发任何事件。所以,他不能使用 GetCursorPos
-
@KiroConeski,
GetCursorPos必须循环运行。当鼠标操作发生时,钩子会以相同的方式被调用,即使它不是用于您的窗口(如果您使用正确的类型)。
标签: c++ windows winapi dialog window