Как получить полный клиент прямой?

Функция GetClientRect, согласно MSDN, на самом деле хороша только для определения ширины и высоты клиента, поскольку left & top всегда равны нулю. Is there a way to get the complete client coordinates, including left & top (either in screen space, or in window space)?

3 ответа

Решение

Вызовите ClientToScreen в верхнем левом и нижнем правом углу возвращенного RECT. Если вы используете MFC, CWnd имеет вспомогательную перегрузку CWnd::ClientToScreen, которая сделает это прозрачно для вас.

Может быть, вам нужен GetWindowRect.

Вы ищете функцию GetWindowPlacement. Эта функция возвращает структуру WINDOWPLACEMENT, которая имеет свойство rcNormalPosition, которое указывает положение окна, когда оно находится в нормальном (а не развернутом или развернутом) состоянии отображения.

РЕДАКТИРОВАТЬ: ответ itowilson на самом деле чище, потому что структура WINDOWPLACEMENT также содержит кучу данных, которые вам не нужны.

Другие вопросы по тегам