
WM_LBUTTONDOWN
WM_LBUTTONDOWN是一个计算机函式,功能是讯息当用户在window客户区域点击滑鼠左键的时候传送。如果当前滑鼠没有被捕捉,讯息传送给滑鼠下面的window窗体。否则,讯息传送给当前捕捉滑鼠讯息的方法。
基本介绍
- 中文名:WM_LBUTTONDOWN
- 语法:wParam
- 接收方法:通过WindowProc函式接收
- 注意:不能使用GetAsyncKeyState
简介
window窗体通过WindowProc函式接收此讯息。
语法
wParam
其他
指示是否其它键被按下。此参数可以是以下的值:
MK_CONTROL
键盘CTRL键被按下。
MK_LBUTTON
滑鼠左键被按下。
MK_MBUTTON
滑鼠中键被按下。
MK_RBUTTON
滑鼠右键被按下。
MK_SHIFT
键盘SHIFT键被按下。
MK_XBUTTON1
Windows 2000/XP: The first X button is down.
MK_XBUTTON2
Windows 2000/XP: The second X button is down.lParamlParam
低位元组表示游标的X坐标,坐标是相对于客户区域的左上角。高位元组表示游标的Y坐标,坐标是相对于客户区域的左上角。返回值
如果程式处理了这个讯息,返回0。
备注
使用以下代码获取游标的坐标:
1.xPos = GET_X_LPARAM(lParam);
2.yPos = GET_Y_LPARAM(lParam);
以上代码需要使用ATL库,定义在windowsx.h中您也可以使用MAKEPOINTS宏转换lParam参数到POINTS结构。
请注意,如下方法:
1.xPos = LOWORD(lParam);
2.yPos = HIWORD(lParam);
即使用LOWORD和HIWORD来获取坐标是不合适的,参考MSDN中对GetMessagePos函式的一段说明:Important Do not use the LOWORD or HIWORD macros to extract the x- and y- coordinates of the cursor position because these macros return incorrect results on systems with multiple monitors. Systems with multiple monitors can have negative x- and y- coordinates, and LOWORD and HIWORD treat the coordinates as unsigned quantities.简要翻译:不要使用LOWORD或HIWORD宏来获取滑鼠位置,因为这两个宏在多显示器的系统中返回不正确的值。在多显示器的系统中可能会有负值的x和y轴的坐标,但LOWORD和HIWORD将坐标视为非负数。追根溯源,通过这几个宏的定义我们能够更好地理解这个问题:
转载请注明出处海之美文 » WM_LBUTTONDOWN