4

我使用这些样式创建了一个无边框窗口:WS_VISIBLE | WS_POPUP | WS_OVERLAPPED

问题是窗口不能移动。我知道我可以做一些事情,比如获取鼠标点击位置,然后计算每次出现WM_MOUSEMOVE.

但是这个解决方案并不稳定,因为当我将鼠标移动得太快时,它会跳出窗口,然后它就没有反应了。我不想设置一个钩子,因为它们太慢了。我已经搜索了互联网,但什么都没有出现。

我最理想的是创建一个窗口,它可以在没有边框或标题的情况下移动,我不需要自己跟踪鼠标,但是 Windows 会为我做这件事,比如让整个窗口成为标题.

4

2 回答 2

5

我知道我可以做一些事情,比如获取鼠标点击位置,然后计算每次出现WM_MOUSEMOVE. 但是这个解决方案并不稳定,因为当我移动鼠标太快时,它会跳出窗口,然后它就没有反应了。

SetCapture您可以通过在收到鼠标点击时调用来解决此问题。WM_MOUSEMOVE然后,即使鼠标光标离开您的窗口,您也将继续接收。当用户完成拖动并释放鼠标光标时,您应该调用ReleaseCapture.

我理想地想要的是创建一个窗口,它可以在没有边框或标题的情况下移动,我不需要自己跟踪鼠标,但是 Windows 会为我做这件事,比如让整个窗口成为标题.

如果你真的想这样做,你可以回复WM_NCHITTEST消息并返回HTCAPTION

于 2013-07-06T10:54:34.797 回答
1

试穿。PostMessage(hwnd,WM_SYSCOMMAND,SC_SIZE+9,0)_WM_LBUTTONDOWN

于 2013-07-06T11:00:38.670 回答