我想拖动这个角色。图像 :
所以我使用这个方法来获取鼠标位置:
WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
...
switch (message){
case WM_LBUTTONDOWN:
case WM_MOUSEMOVE:
GetCursorPos(&mousePosition);
break;
}
...
}
程序似乎运行良好,但如果鼠标超出字符位置,程序将不再跟随鼠标光标。
我该如何解决这个问题?
See SetCapture http://msdn.microsoft.com/en-us/library/windows/desktop/ms646262在 MSDN 上:
将鼠标捕获设置为属于当前线程的指定窗口。设置捕获当鼠标位于捕获窗口上方时,或者当鼠标位于捕获窗口上方且按钮仍处于按下状态时按下鼠标按钮时捕获鼠标输入。一次只有一个窗口可以捕获鼠标。
SetCapture
..ReleaseCapture
允许您暂时将鼠标事件处理扩展到窗口之外的空间[事件源自的地方]。
你有一些示例/演示here http://msdn.microsoft.com/en-us/library/windows/desktop/ms645602%28v=vs.85%29.aspx#drawing_lines:
switch (uMsg)
{
case WM_LBUTTONDOWN:
// Capture mouse input.
SetCapture(hwndMain); // <<--- Here we go
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)