|
WindowProc,从而使Windows执行系统功能。就这方面来说,非显示区域滑鼠讯息类似於系统键盘讯息WM_SYSKEYDOWN、WM_SYSKEYUP和WM_SYSCHAR。
非显示区域滑鼠讯息几乎完全与显示区域滑鼠讯息相对应。讯息中含有字母「NC」以表示是非显示区域讯息。如果滑鼠在视窗的非显示区域中移动,那么视窗讯息处理程式会接收到WM_NCMOUSEMOVE讯息。滑鼠按键产生如表7-2所示的讯息。
按下(双击)
|
| 左 |
WM_NCLBUTTONDOWN |
WM_NCLBUTTONUP |
WM_NCLBUTTONDBLCLK |
| 中 |
WM_NCMBUTTONDOWN |
WM_NCMBUTTONUP |
WM_NCMBUTTONDBLCLK |
| 右 |
WM_NCRBUTTONDOWN |
WM_NCRBUTTONUP |
WM_NCRBUTTONDBLCLK |
对非显示区域滑鼠讯息,wParam和lParam参数与显示区域滑鼠讯息的wParam和lParam参数不同。wParam参数指明移动或者按滑鼠按键的非显示区域。它设定为WINUSER.H中定义的以HT开头的识别字之一(HT表示「命中测试」)。
lParam参数的低位元word为x座标,高位元word为y座标,但是,它们是萤幕座标,而不是像显示区域滑鼠讯息那样指的是显示区域座标。对萤幕座标,显示器左上角的x和y的值为0。当往右移时x的值增加,往下移时y的值增加(见图7-2)。
您可以用两个Windows函式将萤幕座标转换为显示区域座标或者反之:
ScreenToClient (hwnd, &pt) ;
ClientToScreen (hwnd, &pt) ;
这里pt是POINT结构。这两个函式转换了保存在结构中的值,而且没有保留以前的值。注意,如果萤幕座标点在视窗显示区域的上面或者左边,显示区域座标x或y值就是负值。

命中测试讯息
如果您数一下,就可以知道我们已经介绍了