全部。
這是我在stackoverflow上的第一個問題,所以我希望我這樣做是正確的。無論如何,我的問題:
我已經創建了一個使用這些樣式的無邊界窗口:WS_VISIBLE | WS_POPUP | WS_OVERLAPPED
問題是窗口無法移動。我知道我可以做點什麼,比如點擊鼠標位置,然後計算窗口最終會在哪裏出現WM_MOUSEMOVE
。但是這個解決方案並不穩定,因爲當我將鼠標移動得太快時,它就會離開窗口,然後它就不會反應。我不想設置鉤子,因爲它們太慢了。我搜查了互聯網,但沒有出現。
我最想做的是創建一個窗口,該窗口可以無邊框或標題移動,我不需要自己跟蹤鼠標,但是Windows爲我做了這些操作,比如使整個窗口標題。
WINAPI/C++:移動無邊框窗口
回答
我知道我可以做這樣的事情讓鼠標點擊的位置,然後計算了窗口竟又每次總會有這種
WM_MOUSEMOVE
。但是這個解決方案並不穩定,因爲當我將鼠標移動得太快時,它就會離開窗口,然後它就不會反應。
當您收到鼠標單擊時,您可以通過調用SetCapture
來解決該問題。即使鼠標光標離開窗口,您仍然會繼續收到WM_MOUSEMOVE
。當用戶完成拖動並釋放鼠標光標時,您應該致電ReleaseCapture
。
我最想做的是創建一個窗口,該窗口可以無邊框或標題移動,我不需要自己跟蹤鼠標,但是Windows爲我做的那樣,就像使整個窗口成爲標題。
如果您確實想這樣做,您可以回覆WM_NCHITTEST
消息並返回HTCAPTION
。
如果整個窗口應該可拖動,第二個選項是贏家。這是解決拖動無邊框窗口問題的標準方法,您可以在整個網絡上找到建議/解決方案。確保你也處理'WM_SETCURSOR'來爲你的窗口的可拖動性提供正確的視覺暗示。 –
謝謝你,第二個解決方案是完美的 - 正是我期待的。 – Lillesort131
哦,我想給你+1,但我沒有足夠的聲譽,因爲這是我的第一個問題。:( – Lillesort131
- 1. 如何移動無邊框窗口?
- 2. 在wpf中移動無邊界窗口
- 3. 可移動的WPF無邊界窗口
- 4. 允許用戶移動無邊框窗口
- 5. 滾動窗口邊框
- 6. WPF窗口拖動/移動邊界
- 7. 如何在無代碼文件的情況下移動無邊框wpf窗口
- 8. 移動無邊框樣式
- 9. 用Qt製作無邊框窗口
- 10. WPF無邊框窗口內利潤
- 11. WPF無邊框窗口的問題:
- 12. WPF中的無邊框窗口
- 13. WPF無邊框窗口按鈕
- 14. 使用鼠標移動帶有自定義邊框的窗口
- 15. 移動另一個程序的窗口並刪除邊框
- 16. QML:拖動無框窗口
- 17. QtQuick2拖動無框窗口
- 18. 如何在WPF中移動無邊界的子窗口/對話框
- 19. 用MahApps.Metro無邊框窗口的菜單替換窗口標題
- 20. macOS窗口邊框尺寸
- 21. 刪除窗口邊框?
- 22. Silverlight 3 oob窗口邊框
- 23. 無框窗口無法拖動 - Mac OSX
- 24. 無邊界窗口monogame
- 25. CEF 3無邊界窗口
- 26. Eclipse 4 - 無邊界窗口
- 27. VBScript移動窗口
- 28. 在移動窗口
- 29. UIView窗口移動
- 30. Winform和WPF窗體/窗口邊框
爲什麼形式需要來響應你故意移動它快? –
@AustinBrunkhorst因爲這就是人們期望窗戶行爲的方式。如果您開始拖動窗口,則窗口應該結束拖動結束的位置,而不是鼠標光標發生超出窗口的某個位置。 – jamesdlin
可能的重複[如何實現使用其客戶區拖動窗口?](http://stackoverflow.com/questions/7773771/how-do-i-implement-dragging-a-window-using-its-client -area) –