определение окна восстановленного размера - PullRequest
1 голос
/ 24 февраля 2012

Я пытаюсь сгенерировать растровое изображение, содержащее то, что будет отображаться, если окно будет восстановлено на рабочем столе.GetWindowRect возвращает его минимизированный размер, GetWindowplacement возвращает, куда он пойдет.Но я не могу найти API, который говорит мне, насколько большим он будет.

Как определить, насколько большим будет окно при восстановлении?

Ответы [ 2 ]

4 голосов
/ 24 февраля 2012

GetWindowPlacement действительно то, что вы хотите. Используйте rcNormalPosition, который является RECT, содержащим координаты нормализованной позиции. Или, если WPF_RESTORETOMAXIMIZED находится в расположении окна flags, используйте рабочую область монитора, с которой связано окно.

Сказав это, GetWindowPlacement может иногда возвращать вводящую в заблуждение информацию в rcNormalPosition в Windows 7. Я сталкивался с этим, когда вы используете функцию полуэкрана Aero snap. После того, как вы это сделаете, и если окно все еще нормализуется, когда вы задаете вопрос, вы обнаружите, что GetWindowPlacement возвращает rcNormalPosition a RECT, что не соответствует позиции привязки Aero. Разберитесь с этим, просто используя GetWindowRect, если окно нормализовано.

4 голосов
/ 24 февраля 2012

GetWindowPlacement точно скажет, насколько большим будет окно. Поле rcNormalPosition - это RECT, в котором указаны размеры. Получите высоту и ширину, отнимите верх снизу, слева направо.

Обратите внимание на комментарий MSDN о том, что прямоугольник находится в координатах рабочего пространства , а не в координатах экрана:

Координаты рабочей области отличаются от координат экрана тем, что в них учитываются расположение и размеры панелей инструментов приложения (включая панель задач). Координата рабочей области (0,0) - это левый верхний угол области рабочей области, область экрана не используется панелями инструментов приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...