我想拖动这个角色。图像 :
所以我使用这个方法来获取鼠标位置:
WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
...
switch (message){
case WM_LBUTTONDOWN:
case WM_MOUSEMOVE:
GetCursorPos(&mousePosition);
break;
}
...
}
Run Code Online (Sandbox Code Playgroud)
程序似乎运行良好,但如果鼠标离开字符位置,它就不再跟随鼠标光标。
我该如何解决这个问题?
参见SetCapture
MSDN:
将鼠标捕获设置为属于当前线程的指定窗口。当鼠标位于捕获窗口上方时,或者当鼠标位于捕获窗口上方且按钮仍处于按下状态时按下鼠标按钮时,SetCapture 捕获鼠标输入。一次只有一个窗口可以捕获鼠标。
SetCapture
..ReleaseCapture
允许您暂时将鼠标事件处理扩展到窗口之外的空间[事件的来源]。
您在这里有一些示例/演示:
switch (uMsg)
{
case WM_LBUTTONDOWN:
// Capture mouse input.
SetCapture(hwndMain); // <<--- Here we go
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3419 次 |
最近记录: |