WM_MOUSEHOVER 消息
当光标悬停在窗口的工作区上的时间达到上次 TrackMouseEvent 调用中指定的时间段时,发布到一个窗口。
窗口通过其 WindowProc 函数接收此消息。
#define WM_MOUSEHOVER 0x02A1
参数
-
wParam
-
指示各种虚拟键是否已按下。 此参数可使用以下一个或多个值。
值 含义 - MK_CONTROL
- 0x0008
按下了 CTRL 键。 - MK_LBUTTON
- 0x0001
按下了鼠标左键。 - MK_MBUTTON
- 0x0010
按下了鼠标中键。 - MK_RBUTTON
- 0x0002
按下了鼠标右键。 - MK_SHIFT
- 0x0004
按下了 SHIFT 键。 - MK_XBUTTON1
- 0x0020
按下了第一个 X 按钮。 - MK_XBUTTON2
- 0x0040
按下了第二个 X 按钮。 -
lParam
-
低序字指定光标的 x 坐标。 坐标相对于工作区的左上角。
高序字指定光标的 y 坐标。 坐标相对于工作区的左上角。
返回值
如果应用程序处理此消息,它应返回零。
注解
当生成了 WM_MOUSEHOVER 时,悬停跟踪将停止。 如果应用程序需要进一步跟踪鼠标悬停行为,则必须再次调用 TrackMouseEvent。
使用以下代码获取水平和垂直位置:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
如上所述,x 坐标位于返回值的低位短值;y 坐标位于高位短值(两者都表示有符号值,因为它们在具有多个监视器的系统上可以取负值)。 如果返回值被赋给一个变量,则可以使用 MAKEPOINTS 宏从返回值中获取一个 POINTS 结构。 还可以使用 GET_X_LPARAM 或 GET_Y_LPARAM 宏提取 x 或 y 坐标。
重要
请勿使用 LOWORD 或 HIWORD 宏提取光标位置的 x 和 y 坐标,因为这些宏在具有多个监视器的系统上会返回不正确的结果。 具有多个监视器的系统可以具有负 x 坐标和 y 坐标,LOWORD 和 HIWORD 会将坐标视为无符号数量。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
另请参阅
-
引用
-
Conceptual
-
其他资源