Как вы программно изменяете размеры и перемещаете окна с помощью Windows API? - PullRequest
24 голосов
/ 28 марта 2009

Как вы программно изменяете размеры и перемещаете окна с помощью Windows API?

Сценарий таков: я хочу расположить вертикально два окна (80% / 20% ширины).

Ответы [ 5 ]

35 голосов
/ 28 марта 2009

Для одновременного позиционирования двух (или более) окон без мерцания лучше всего использовать BeginDeferWindowPos () , DeferWindowPos () и EndDeferWindowPos () . В вашем случае, так как вы перемещаете два одновременно, это ваш лучший выбор.

Три более старых и простых функции, которые вы также можете рассмотреть: SetWindowPos () , MoveWindow () и AdjustWindowRectEx () .

12 голосов
/ 28 марта 2009

Используйте SetWindowPos () в Windows API.

С учетом HWND вы можете изменить z-порядок, положение (вверху слева), размер, а также множество других флагов (например, показ или скрытие, сделать его активным окном или нет, и т. Д.).

4 голосов
/ 28 марта 2009

Вы ищете один из SetWindowPos , MoveWindow и AdjustWindowRectEx .

Можете ли вы более подробно рассказать о сценарии, чтобы мы могли порекомендовать наиболее подходящий API?

3 голосов
/ 28 марта 2009

SetWindowPos или MoveWindow выполнят это за вас

3 голосов
/ 28 марта 2009

Поиск MoveWindow в документации SDK.

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