Как заставить окно поддерживать определенное соотношение ширины / высоты при изменении размера - PullRequest
6 голосов
/ 15 марта 2010

Я хочу, чтобы мое окно всегда поддерживало определенное соотношение, скажем, 1,33333333. Итак, если окно width = 800, height = 600 и пользователь меняет ширину на 600, я хочу автоматически изменить высоту на 450.

Я уже перехватываю WM_SIZE, но я не знаю, достаточно ли этого; также я не знаю, как изменить ширину или высоту, чтобы сохранить соотношение.

Ответы [ 3 ]

9 голосов
/ 15 марта 2010

WM_SIZING отправляется в окно, пока пользователь изменяет размеры окна.

Скорее дескриптор WM_WINDOWPOSCHANGING - это отправляется внутренней функцией SetWindowPos, когда код (или пользователь) изменяет размер окна и гарантирует, что даже операции мозаики и каскада подчиняются вашей политике определения размера.

3 голосов
/ 15 марта 2010

См. WM_SIZING: http://msdn.microsoft.com/en-us/library/ms632647.aspx

Обработка этого сообщения позволяет изменить размер результирующего окна.

0 голосов
/ 15 марта 2010

Попробуйте событие Resize . В ссылке приведен пример сохранения желаемого соотношения сторон.

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