我想允許用戶拖動我的Win32窗口只在桌面的工作區域內。換句話說,它們不應該能夠讓窗口的任何部分延伸到監視器之外,窗口也不應該與任務欄重疊。限制窗口位置到桌面工作區域
我想這樣做會導致任何口吃。處理WM_MOVE消息並調用MoveWindow()以在窗口關閉時重新定位窗口,但我不喜歡MoveWindow()引起的閃爍效果。
我也嘗試過處理WM_MOVING,它可以防止在移動實際發生之前通過改變目標矩形來調用MoveWindow()。這解決了閃爍問題,但我遇到的另一個問題是,當發生拖動時,光標有時會從窗口中離開,允許用戶拖動窗口,而光標甚至不在窗口內。
如何限制我的窗口而不會遇到這些問題?