马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
注1:本文档由 Diu 翻译,小甲鱼校对。
注2:由于 WM_NCLBUTTONDOWN、WM_NCMBUTTONDOWN 和 WM_NCRBUTTONDOWN 三个消息基本一致(除了区分左中右),所以进行了合并。
WM_NCLBUTTONDOWN 消息原文链接 -> 传送门
WM_NCMBUTTONDOWN 消息原文链接 -> 传送门
WM_NCRBUTTONDOWN 消息原文链接 -> 传送门
消息含义:
当光标在窗口的非客户区域,用户按下鼠标(左 | 中 | 右)键时便会发送该消息。消息会发送给包含该光标的窗口。如果窗口没有捕获鼠标,则该消息将不会被发送。
窗口通过自己的 WindowProc 函数接收该消息。
消息定义:
#define WM_NCLBUTTONDOWN 0x00A1
#define WM_NCMBUTTONDOWN 0x00A7
#define WM_NCRBUTTONDOWN 0x00A4
参数解析:
wParam:DefWindowProc 函数处理 WM_NCHITTEST 消息返回的点击测试值。参见 WM_NCHITTEST 消息查看一系列点击测试值。
lParam:包含光标横坐标和纵坐标的 POINTS 结构。坐标是相对于屏幕的左上角的。
返回值:
如果处理了这个消息,应用程序应返回零。
备注:
1. 你应该使用 GET_X_LPARAM 和 GET_Y_LPARAM 宏来从 lParam 中提取光标的横坐标与纵坐标:xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
重要:不要使用 LOWORD 或 HIWORD 宏来获取鼠标的 x 坐标与 y 坐标,因为这些宏在具有多个显示器的系统上会返回不正确的结果。有多个显示器的系统能有负的 x 坐标和 y 坐标,而 LOWORD 和 HIWORD 宏将坐标看作是无符号的量。
2. 默认情况下,DefWindowProc 函数通过检测特定的点来找到光标的位置,并且执行合适的动作。如果合适的话,DefWindowProc 函数将发送 WM_SYSCOMMAND 消息到该窗口。
需求:
Minimum supported client | Windows 2000 专业版 [仅桌面应用程序] | Minimum supported server | Windows 2000 服务器版 [仅桌面应用程序] | Header | Winuser.h (包含于 Windows.h) |
【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。
|