您的位置:首页 > 其它

关于WM_NCLBUTTONUP

2005-10-02 10:35 295 查看
The WM_NCLBUTTONUP message is posted when the user releases the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
我想在按了我自绘的一个按钮的时候进行某种操作,比如按了关闭按钮.我用了很多方法来截获此消息,都不是很成功.今天偶然发现,在WM_NCLBUTTONDOWN中直接return 0,就能处理WM_NCLBUTTONUP了,非常简单.
这样,我们在任意的窗口上画"按钮"也就容易了.做一个钩子,截获WM_NCLBUTTONDOWN,直接return 0.截获WM_NCHITTEST,看看此时鼠标是不是在我们的"按钮"的rect中,如果在,return HTCLOSE(这里拿关闭按钮为例).截获WM_NCLBUTTONUP,由MSDN知道,nHittest = (INT) wParam,所以我们switch(nHittest),case HTCLOSE(关闭按钮),就PostMessage(WM_CLOSE,0,0)
另,我在CODEGURU上看到有位网友发布了一个叫WM_NCLBUTTONUP Patch的程序,也能实现截获WM_NCLBUTTONUP的功能.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  button patch user