WM_XBUTTONDOWN消息

当用户在光标位于窗口的工作区时按下XBUTTON1或XBUTTON2时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到已捕获鼠标的窗口。

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

#define WM_XBUTTONDOWN                  0x020B

参数

wParam

低序单词指示各种虚拟密钥是否已关闭。 它可以是以下一个或多个值。

价值 意义
MK_CONTROL
0x0008
Ctrl 键已关闭。
MK_LBUTTON
0x0001
鼠标左键已关闭。
MK_MBUTTON
0x0010
鼠标中间按钮已关闭。
MK_RBUTTON
0x0002
鼠标右键已关闭。
MK_SHIFT
0x0004
SHIFT 键已关闭。
MK_XBUTTON1
0x0020
XBUTTON1已关闭。
MK_XBUTTON2
0x0040
XBUTTON2已关闭。

高序单词指示单击了哪个按钮。 它可以是以下值之一。

价值 意义
XBUTTON1
0x0001
单击XBUTTON1。
XBUTTON2
0x0002
单击XBUTTON2。

lParam

低序单词指定光标的 x 坐标。 坐标相对于工作区的左上角。

高序单词指定游标的 y 坐标。 坐标相对于工作区的左上角。

返回值

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

言论

Windows 支持最多五个按钮的鼠标:左侧、中间和右侧,以及两个称为XBUTTON1和XBUTTON2的其他按钮。 XBUTTON1和XBUTTON2按钮通常位于鼠标两侧,靠近基础。 这些额外的按钮在所有老鼠上都不存在。 如果存在,XBUTTON1和XBUTTON2按钮通常映射到应用程序函数,例如 Web 浏览器中的向前和向后导航。

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

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

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

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

如上所述,x 坐标处于返回值的短 ;y 坐标采用高阶 (两者都表示 有符号 值,因为它们可以在具有多个监视器的系统上采用负值)。 如果将返回值赋给变量,则可以使用 MAKEPOINTS 宏从返回值获取 POINTS 结构。 还可以使用 GET_X_LPARAMGET_Y_LPARAM 宏提取 x 坐标或 y 坐标。

重要

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

WM_LBUTTONDOWNWM_MBUTTONDOWNWM_RBUTTONDOWN 消息不同,如果应用程序处理 TRUE,应用程序应从此消息 返回 true。 这样做允许在早于 Windows 2000 的 Windows 系统上模拟此消息的软件来确定窗口过程是处理消息还是调用 DefWindowProc 来处理它。

要求

要求 价值
支持的最低客户端
Windows 2000 Professional [仅限桌面应用]
支持的最低服务器
Windows 2000 Server [仅限桌面应用]
页眉
Winuser.h (包括 Windowsx.h)

另请参阅

参考

GET_KEYSTATE_WPARAM

GET_X_LPARAM

GET_XBUTTON_WPARAM

GET_Y_LPARAM

GetCapture

SetCapture

WM_XBUTTONDBLCLK

WM_XBUTTONUP

概念

鼠标输入

其他资源

MAKEPOINTS