GetWindowPlacement дает неправильное положение окна

Как узнать, был ли изменен размер окна с помощью функции Aero Snap ? Функция GetWindowPlacement выдает последний «восстановленный» размер окна. Я использую его следующим образом:

WINDOWPLACEMENT wp = {};
wp.length = sizeof(WINDOWPLACEMENT);
::GetWindowPlacement( hWnd, &wp );

Например, он дает wp.rcNormalPosition = {top = 208 bottom = 520 left = 152 right = 510} , когда должно быть {top = 0 bottom = 1920 left = 152 right = 510} .

Обратите внимание, что GetWindowRect дает точно такой же неверный результат. Это была моя ошибка, GetWindowRect дает правильный результат.

Мне нужно сохранить состояние окна при выходе из программы и загрузить его при запуске, поэтому мне нужно знать, как расположены окна. Как я могу узнать фактические координаты окна?


Ну, я провел несколько тестов с notepad.exe (и некоторыми другими стандартными компонентами Windows), и он сохраняет свое состояние таким же образом - он не запомните, было ли это «снято». Так что я предполагаю, что это предполагаемое поведение программ Windows.

7
задан Kirill V. Lyadvinsky 19 April 2011 в 06:18
поделиться