Advertisement

对WM_NCHITTEST消息的了解和展示代码示例

阅读量:

该信息具有较高的实用价值且至关重要,其象征着非显示区域命中测试。此消息在所有显示区域与非显示区域的鼠标消息中具有优先级。其中lParam参数包含鼠标的x与y屏幕坐标,而wParam在此处未被使用。

Windows应用程序通常将该消息传递给DefWindowProc,随后Windows通过WM_NCHITTEST消息生成与鼠标位置相关的其他所有鼠标消息。通俗而言,即为从一条消息衍生出其他消息。

case WM_NCHITTEST:

return (LRESULT)HTNOWHERE;

上述代码可禁用窗口的所有显示区域和非显示区域的鼠标消息,即当鼠标位于窗口内时(包括系统菜单图标、缩放按钮、关闭按钮等),鼠标按键将无法生效。

先来了解该消息的返回值:

其为下列列出的鼠标击中测试枚举值之一。

· HTBORDER:位于不支持调整大小边框的窗口边框上。

· HTBOTTOM:位于窗口水平边框底部。

· HTBOTTOMLEFT:位于窗口边框左下角。

· HTBOTTOMRIGHT:位于窗口边框右下角。

· HTCAPTION:位于标题栏内。

· HTCLIENT:位于客户区中。

· HTERROR:位于屏幕背景或窗口之间的分隔线上(与HTNOWHERE相同,但Windows的DefWndProc函数会发出系统提示音以表明错误)。

· HTGROWBOX:位于尺寸

全部评论 (0)

还没有任何评论哟~