关于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的功能.
我想在按了我自绘的一个按钮的时候进行某种操作,比如按了关闭按钮.我用了很多方法来截获此消息,都不是很成功.今天偶然发现,在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的功能.
相关文章推荐
- 关于在标题栏不触发WM_NCLBUTTONUP事件的替代方法(C#)
- 关于WM_NCLBUTTONUP消息
- 关于采用默认方式处理WM_NCLBUTTONDOWN消息而“无法”产生WM_NCLBUTTONUP消息的问题
- WM_NCLBUTTONUP不正常响应
- bug分享 - 收不到WM_NCLBUTTONUP消息
- 如何扑捉到WM_NCLBUTTONUP(OnNcLButtonUp)消息
- WM_NCHITTEST和WM_NCLBUTTONDOWN的作用
- WM_NCLBUTTONDOWN和WM_LBUTTUNDOWN有什么区别
- HTCAPTION与WM_NCLBUTTONDBLCLK及最大化的关系
- WM_nclButtonDblClk响应标题栏事件_message
- WM_CONTEXTMENU与WM_RBUTTONUP的区别
- VC如何禁止双击标题栏 - WM_NCLBUTTONDBLCLK消息
- CTreeView不能响应WM_RBUTTONUP
- WM_NCLBUTTONDOWN+HTCAPTION消息移动一个窗口
- C# 使用WM_NCLBUTTONDOWN消息实现任意位置移动窗体
- WM_NCLBUTTONDOWN+HTCAPTION消息移动一个窗口
- WM_LBUTTONDOWN与WM_NCLBUTTONDOWN的区别
- MFC一个解决自己发送WM_NCLBUTTONDOWN消息后收不到WM_ONLBUTTONUP的方法
- 安卓中关于事件处理方式以Button为例实现点击事件监听
- 关于WM_NOTIFY及反射机制的来龙去脉