我有一個窗口,我處理WM_NCLBUTTONUP消息,以處理點擊標題欄中的自定義按鈕。當窗口最大化時,這很好用,但當它不是時,WM_NCLBUTTONUP消息永遠不會到達!雖然我確實收到了WM_NCLBUTTONDOWN消息。奇怪的是WM_NCLBUTTONUP確實到達了,如果我點擊菜單欄的右側,但是在標題欄/窗口框架的任何位置,消息都不會到達。窗口沒有最大化時丟失的WM_NCLBUTTONUP消息的好奇問題
經過一段時間的調試後,我發現如果我在CMainFrame :: OnNcLButtonDown()上設置斷點,單擊標題欄,但不要按住鼠標按鈕,讓調試器在函數中斷開,按F5繼續調試,然後釋放鼠標按鈕 - 神奇的WM_NCLBUTTONUP發送!
我的問題是雙重的,(1)究竟是怎麼回事? (2)我如何解決這個「問題」。
我還注意到,互聯網上還有其他幾個人有同樣的問題(一個快速的谷歌揭示了很多其他人有同樣的問題,但沒有解決方案)。
編輯
謝謝你的前兩個回覆,我已經打過電話ReleaseCapture在NCLButtonDown,但它沒有任何效果(事實上,它返回NULL,表示捕獲不到位)。我只能假設基類(def窗口過程)功能可能會設置捕獲。我將在星期一進行調查......