c++ - 窗口移动后点击坐标

标签 c++ windows click mouse

不完全熟悉 C++ 中的编程 GUI 等等,我遇到了一个问题,即我的程序在移动/拖动应用程序窗口后不会响应鼠标左键单击。我应该怎么做才能使其正常工作?以下是我在回调函数中处理左键单击消息的方式:

case WM_LBUTTONDOWN:
    {
        POINT point;
        GetCursorPos(&point);
        break;
    }

最佳答案

鼠标位置作为 LPARAM 包含在消息中。

POINT point;
point.x = GET_X_LPARAM(lParam);
point.y = GET_Y_LPARAM(lParam);

MSDN 中所述,该点相对于客户区的左上角。因此,如果您移动窗口, 仍将相对于您的窗口。

GetCursorPos 获取光标在屏幕坐标中的位置。因此,您必须补偿窗口在屏幕上的位置以获得可用位置。

关于c++ - 窗口移动后点击坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7475711/

相关文章:

jquery - 防止单选按钮检查并显示警报

javascript - JQuery 条件点击事件

c++ - 如何生成海量高质量的随机数?

c++ - 包含虚函数的类可以成为单例吗?

c++ - 使用 C++ 在 Linux 上锁定/防止编辑源文件

windows - 使用 Github 从 Windows 到 macOS 共享 Unity 项目的问题

c++ - 使用 freeglut 在 Windows 10 上出现 glDebugMessageCallback 问题

ios - 当提示输入远程主机的 SCP 密码时,如何将回车添加到 bash?

javascript - 如何修复 Javascript 中的点击模拟

c++ - 在哪里保存 QWidget 动画的状态以便在 QStyle 绘制函数中使用?