В приложении MFC настроено многоуровневое окно. Я создал свой собственный производный от CDialog, чтобы позволить мне настраивать различные части визуализации окна. Все работает хорошо, пока я не начну беспокоиться о минимизации и максимизации.
Если вы щелкнете по минимизировать или развернуть, окно будет реагировать точно так, как вы ожидаете (то есть точно так же, как если бы НЕ использовалось многоуровневое окно). Однако когда я восстанавливаю окно, происходит нечто очень странное.
Прямоугольник клиента по умолчанию для моего тестового окна - 324x102. Например, когда я восстанавливаю из свернутого состояния, значения cx и cy, переданные в OnSize, равны 994, 550. Если я затем выполняю GetClientRect (в пределах OnSize), это размер, сообщаемый для окна. Странно, но если я сделаю GetWindowRect, я верну правильный размер (хотя, очевидно, включая все мои не клиентские области).
Кто-нибудь знает, что здесь происходит, и, что более важно, как я могу это исправить, чтобы GetClientRect сообщал ПРАВИЛЬНУЮ информацию?
Заранее спасибо!