【发布时间】:2009-02-06 17:02:42
【问题描述】:
我有一个处理 WM_NCLBUTTONUP 消息的窗口,以便处理对标题栏中自定义按钮的点击。当窗口最大化时这很有效,但是当它不是时,WM_NCLBUTTONUP 消息永远不会到达!我确实收到了 WM_NCLBUTTONDOWN 消息。奇怪的是,如果我单击菜单栏的右侧,WM_NCLBUTTONUP 确实会到达,但是沿着标题栏/窗口框架的任何地方,消息永远不会到达。
调试一段时间后发现如果我在CMainFrame::OnNcLButtonDown()上设置断点,点击标题栏,但一直按住鼠标,让调试器在函数中中断,按F5继续调试,然后释放鼠标按钮 - 神奇地发送 WM_NCLBUTTONUP!!
我的问题有两个,(1)到底发生了什么? (2) 如何解决这个“问题”。
我还注意到互联网上还有其他几个人有同样的问题(快速的谷歌显示很多其他人有同样的问题,但没有解决方案)。
编辑
感谢前两位的回复,我试过在NCLButtonDown中调用ReleaseCapture,但是没有效果(其实返回NULL,说明没有抓到)。我只能假设基类(def window proc)功能可以设置捕获。我会在星期一调查...
【问题讨论】: