我使用以下样式创建了无边界窗口: WS_VISIBLE | WS_POPUP | WS_OVERLAPPED
问题在于窗口无法移动。我知道我可以做一些事情,例如获取鼠标单击位置,然后计算每次出现时窗口将结束的位置WM_MOUSEMOVE。
但是这种解决方案并不稳定,因为当我过快地移动鼠标时,它会跳出窗口,然后再无反应。我不想设置一个钩子,因为它们太慢了。我已经搜索过互联网,但是什么都没有。
我理想的情况是创建一个可以无边界或无标题移动的窗口,我不需要自己跟踪鼠标,但Windows可以为我完成此操作,例如将整个窗口设为标题。
我知道我可以做一些事情,例如获取鼠标单击位置,然后计算每次出现时窗口将结束的位置
WM_MOUSEMOVE。但是这种解决方案并不稳定,因为当我过快地移动鼠标时,它会跳出窗口,然后再无反应。
您可以通过SetCapture在收到鼠标单击时进行调用来解决此问题。然后,WM_MOUSEMOVE即使鼠标光标离开窗口,您仍将继续接收。用户完成拖动并释放鼠标光标后,您应该调用ReleaseCapture。
我理想的情况是创建一个可以无边界或无标题移动的窗口,我不需要自己跟踪鼠标,但Windows可以为我完成此操作,例如将整个窗口设为标题。
如果您确实想这样做,则可以回复该WM_NCHITTEST消息并返回HTCAPTION。