WM _ XBUTTONDOWN 消息

当光标位于窗口工作区中并且用户按下第一个或第二个 X 按钮时发布。 如果未捕获鼠标,则会将消息发布到光标下的窗口。 否则,会将消息发送到捕获了鼠标的窗口。

窗口通过其 WindowProc 函数接收此消息。

#define WM_XBUTTONDOWN                  0x020B

parameters

wParam

低序位字指示各种虚拟键是否已关闭。 它可以是下列值中的一个或多个。

含义
MK _控件
0x0008
CTRL 键关闭。
MK _LBUTTON
0x0001
鼠标左键已按下。
MK _MBUTTON
0x0010
鼠标中键关闭。
MK _RBUTTON
0x0002
鼠标右键处于关闭状态。
MK _移位
0x0004
SHIFT 键关闭。
MK _XBUTTON1
0x0020
第一个 X 按钮已关闭。
MK _XBUTTON2
0x0040
第二个 X 按钮已关闭。

高阶字指示单击了哪个按钮。 可以是下列值之一。

含义
XBUTTON1
0x0001
单击第一个 X 按钮。
XBUTTON2
0x0002
已单击第二个 X 按钮。

lParam

低序位字指定光标的 x 坐标。 该坐标相对于工作区的左上角。

高阶字指定光标的 y 坐标。 该坐标相对于工作区的左上角。

返回值

如果应用程序处理此消息,则它应返回 TRUE。 有关处理返回值的详细信息,请参阅 "备注" 部分。

备注

使用以下代码获取 wParam 参数中的信息:

fwKeys = GET_KEYSTATE_WPARAM (wParam); 
fwButton = GET_XBUTTON_WPARAM (wParam);

使用以下代码获取水平和垂直位置:

xPos = GET_X_LPARAM(lParam); 
yPos = GET_Y_LPARAM(lParam); 

如上所述,x 坐标按返回 值的低序位进行排序; y 坐标采用高阶 short (表示 有符号 的值,因为它们可以在具有多个监视器) 的系统上使用负值。 如果将返回值赋给变量,则可以使用 MAKEPOINTS 宏从返回值获取 结构。 你还可以使用 get _ x _ LPARAMget _ y _ LPARAM 宏来提取 X 轴或 y 轴坐标。

重要

不要使用 LOWORDHIWORD 宏来提取光标位置的 x 坐标和 y 坐标,因为这些宏会在具有多个监视器的系统上返回不正确的结果。 具有多个监视器的系统可以具有负 x 和 y 坐标,而 LOWORDHIWORD 将坐标视为无符号数量。

wm _ LBUTTONDOWNwm _ MBUTTONDOWNwm _ RBUTTONDOWN 消息不同,应用程序在处理它时应从此消息返回 TRUE 。 这样做可以使在 Windows 2000 之前的 Windows 系统上模拟此消息的软件,以确定窗口过程是处理了该消息,还是调用了 DefWindowProc来处理该消息。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Winuser.h (包含 Windowsx)

另请参阅

引用

获取 _ KEYSTATE _ WPARAM

获取 _ X _ LPARAM

获取 _ XBUTTON _ WPARAM

获取 _ Y _ LPARAM

GetCapture

SetCapture

WM _ XBUTTONDBLCLK

WM _ XBUTTONUP

概念性

鼠标输入

其他资源

MAKEPOINTS

热点