单击窗口移动后的坐标

时间:2011-09-19 18:40:12

标签: c++ windows click mouse

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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