Нажмите Координаты после перемещения окна - PullRequest
1 голос
/ 19 сентября 2011

Не будучи полностью знакомым с программированием GUI на C ++ и так далее, я столкнулся с проблемой, когда моя программа не будет реагировать на щелчок левой кнопкой мыши после перемещения / перетаскивания окна приложения. Что я должен сделать, чтобы это работало должным образом? Вот как я обрабатываю сообщение левой кнопкой мыши в функции обратного вызова:

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

1 Ответ

1 голос
/ 19 сентября 2011

Местоположение мыши включено в сообщение как LPARAM.

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

Как указано на MSDN , точка указана относительно верхнего левого угла клиентской области. Поэтому, если вы переместите окно, point все равно будет относительно вашего окна.

GetCursorPos получает позицию курсора в экранных координатах. Таким образом, вам придется компенсировать положение вашего окна на экране, чтобы получить полезную позицию.

...