Как свернуть окно до точного предыдущего состояния (восстановлено или развернуто)? - PullRequest
0 голосов
/ 31 августа 2009

В Windows у меня свернуто окно, которое является окном переднего плана (GetForegroundWindow). Теперь я хочу свернуть окно, чтобы оно снова стало видимым. Как я могу вернуть окно в прежнее состояние? То есть, если окно было «восстановлено» до минимизации, оно должно быть восстановлено, если оно было максимизировано до минимизации, оно должно быть снова развернуто и особенно не восстановлено или что-то в этом роде.

Кажется, я могу определить только текущее состояние окна из {свернутого, восстановленного, развернутого}, но теоретически, свернутого и развернутого должны быть флаги, которые можно установить вместе.

Как панель задач Explorer узнает, в каком состоянии показывать окно, если пользователь нажимает на него?

Ответы [ 2 ]

1 голос
/ 31 августа 2009

Если вы используете что-то вроде C, вы можете посмотреть функцию ShowWindow:

ShowWindow(hWnd, SW_RESTORE)

SW_RESTORE
Активирует и отображает окно. Если окно свернуто или развернуто, система восстанавливает его до его оригинальный размер и положение. приложение должно указать этот флаг при восстановлении свернутого окна.

0 голосов
/ 31 августа 2009

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

Затем при восстановлении из свернутого можно проверить предыдущее состояние и размер.

В WPF текущий размер и состояние хранятся в свойствах Top, Left, Height, Width и WindowState главного окна. Копия местоположения и размера хранится в структуре RestoreBounds, и она используется базовыми классами (поэтому вам не нужно) при восстановлении окна из Maximized, например.

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