所有点。
这是我在stackoverflow上的第一个问题,所以我希望我做得对。无论如何,我的问题:
我使用这些样式创建了一个无边框窗口:WS_VISIBLE | WS_POPUP | WS_OVERLAPPED
问题是窗口无法移动。我知道我可以做一些事情,比如获取鼠标点击位置,然后计算每次出现WM_MOUSEMOVE
时窗口最终的位置。但是这个解决方案并不稳定,因为当我移动鼠标太快时,它会离开窗口,然后它就不会做出反应。我不想设置一个钩子,因为它们太慢了。我在互联网上搜索过,但一切都没有出现。
我理想的是,创建一个窗口,可以移动没有边框或标题,我不需要自己跟踪鼠标,但Windows为我做的,就像整个窗口的标题一样点。
答案 0 :(得分:4)
我知道我可以做一些事情,比如获取鼠标点击位置,然后计算每次出现
WM_MOUSEMOVE
时窗口最终的位置。但是这个解决方案并不稳定,因为当我将鼠标移动太快时,它会离开窗口,然后它就不会起作用。
您可以通过在收到鼠标单击时调用SetCapture
来解决此问题。然后,即使鼠标光标离开窗口,您仍将继续接收WM_MOUSEMOVE
。当用户完成拖动并释放鼠标光标后,您应该调用ReleaseCapture
。
我理想的是,创建一个窗口,可以无边框或字幕移动,我不需要自己跟踪鼠标,但是Windows为我做了,就像制作整个窗口一样窗口标题。
如果你真的想这样做,你可以回复WM_NCHITTEST
消息并返回HTCAPTION
。
答案 1 :(得分:-2)
在WM_LBUTTONDOWN上尝试PostMessage(hwnd,WM_SYSCOMMAND,SC_SIZE + 9,0)