单击窗口移动后的坐标

Click Coordinates after Window Movement

本文关键字:坐标 移动 窗口 单击      更新时间:2023-10-16

不完全熟悉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的文档,该点相对于客户端区域的左上角。因此,如果你移动了窗口,point仍然相对于你的窗口。

GetCursorPos获取光标在屏幕坐标中的位置。所以你必须补偿你的窗口在屏幕上的位置,以获得一个可用的位置。