全部。
这是我在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) –