WM_MOUSEMOVE消息处理

1 c winapi wndproc

我有以下内容WndProc:

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM w, LPARAM l)
{
    switch (message)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    case WM_MOUSEMOVE:
            return 0;
    default:
        return DefWindowProc(hWnd, message, w, l);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想阻止鼠标移动,以便我试图丢弃移动消息.问题是鼠标仍在移动.我也曾尝试WM_NCHITTEST和WM_MOUSEHOVER.

Joe*_*oey 7

该WM_MOUSEMOVE消息只是窗口管理器告诉你鼠标移动,如果你的应用程序需要做的是信息的东西就可以这样做.它不是一种可以拦截鼠标移动并随意取消它们的机制.


ten*_*our 5

如果您试图限制光标移动,请查看Windows API 中的ClipCursor函数.

  • `ClipCursor`听起来就像他正在寻找的那样.但是,确保通过再次调用`ClipCursor`释放*光标以放弃对其他应用程序的控制.完全接管用户的计算机,并防止他们使用其他应用程序是一个用户体验的敌对,保证让您的应用立即卸载(如果他们能弄清楚如何打开控制面板). (2认同)