我有一个窗口,我处理WM_NCLBUTTONUP消息,以处理点击标题栏中的自定义按钮。当窗口最大化时,这很好用,但当它不是时,WM_NCLBUTTONUP消息永远不会到达!虽然我确实收到了WM_NCLBUTTONDOWN消息。奇怪的是WM_NCLBUTTONUP确实到达了,如果我点击菜单栏的右侧,但是在标题栏/窗口框架的任何位置,消息都不会到达。窗口没有最大化时丢失的WM_NCLBUTTONUP消息的好奇问题
经过一段时间的调试后,我发现如果我在CMainFrame :: OnNcLButtonDown()上设置断点,单击标题栏,但不要按住鼠标按钮,让调试器在函数中断开,按F5继续调试,然后释放鼠标按钮 - 神奇的WM_NCLBUTTONUP发送!
我的问题是双重的,(1)究竟是怎么回事? (2)我如何解决这个“问题”。
我还注意到,互联网上还有其他几个人有同样的问题(一个快速的谷歌揭示了很多其他人有同样的问题,但没有解决方案)。
编辑
谢谢你的前两个回复,我已经打过电话ReleaseCapture在NCLButtonDown,但它没有任何效果(事实上,它返回NULL,表示捕获不到位)。我只能假设基类(def窗口过程)功能可能会设置捕获。我将在星期一进行调查......