Win32 API. Окна
Страница 22. Размер и позиция окна


 

Размер и позиция окна

Размер и позиция окна выражены как ограниченный прямоугольник, данный в координатах относительно экрана или родительского окна. Координаты окна верхнего уровня отсчитываются относительно верхнего левого угла экрана; координаты дочернего окна отсчитываются относи-тельно верхнего левого угла родительского окна. Прикладная программа определяет начальный размер окна и позицию, когда она создает окно, но она может изменять размер и расположение окна в любое время. Для получения дополнительной информации об ограниченных прямоугольниках, см. Заполненные Формы.

Размеры окна

Размеры окна (ширина и высота) даются в пикселях. Окно может иметь нулевую ширину или высоту. Если прикладная программа устанавливает нулевую ширину и высоту окна, Windows устанавливает размеры в заданных по умолчанию минимальных размерах окна. Чтобы узнать заданные по умолчанию минимальные размеры окна, прикладная программа использует функцию GetSystemMetrics с флажками SM_CYMIN и SM_CXMIN.

У прикладной программы может возникнуть необходимость создать окно с рабочей областью отдельного размера. Функции AdjustWindowRect и AdjustWindowRectEx вычисляют требуемый размер, базируясь на требуемых размерах рабочей области. Прикладная программа может передавать, полученные в результате, значения размера в функцию CreateWindowEx.

Прикладная программа может установить величину окна так, чтобы оно было чрезвычайно большое; однако, она не должно устанавливать величину окна так, чтобы оно было больше, чем экран. Перед установкой размера окна, прикладная программа должна проверить ширину и высоту экрана, используя GetSystemMetrics с флажками SM_CYSCREEN и SM_CXSCREEN.

Позиция (расположение) окна

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

Функция WindowFromPoint отыскивает дескриптор окна, занимающего отдельное место на экране. Точно так же функции ChildWindowFromPoint и ChildWindowFromPointEx отыскивают дескриптор дочернего окна, занимающего отдельное место в рабочей области родительского окна. Хотя функция ChildWindowFromPointEx может игнорировать невидимые, заблокированные и прозрачные дочерние окна, то ChildWindowFromPoint это не может.

Размеры и позиция по умолчанию

Прикладная программа может позволить Windows вычислять начальный размер или позицию окна верхнего уровня, путем установки CW_USEDEFAULT в CreateWindowEx. Если прикладная программа устанавливает координаты окна в CW_USEDEFAULT и не создает никаких других окон верхнего уровня, Windows устанавливает позицию нового окна относительно верхнего левого угла экрана; иначе, она устанавливает позицию относительно позиции окна верхнего уровня, которое прикладная программа создала совсем недавно. Если параметры ширины и высоты установлены в CW_USEDEFAULT, Windows вычисляет размер нового окна. Если прикладная программа создала другие окна верхнего уровня, Windows базирует размеры нового окна на размере окна верхнего уровня прикладной программы созданного совсем недавно. Определение CW_USEDEFAULT, при создании дочернего или выскакивающего окна, заставляет Windows устанавливать размеры окна в заданных по умолчанию минимальных размерах окна.

Устанавливаемые размеры

Windows поддерживает минимальный и максимальный устанавливаемый размер для окна стиля WS_THICKFRAME; окно с этим стилем имеет рамку установки размеров окна. Минимальный устанавливаемый размер (minimum tracking size) - самый маленький размер окна, который пользователь, может сделать, перемещая рамку установки размеров окна. Точно так же максимальный устанавливаемый размер (maximum tracking size) - самый большой размер окна, который пользователь может сделать, перемещая рамку установки размеров окна.

Минимальные и максимальные устанавливаемые размеры окна устанавливаются в значениях, определенных системой по умолчанию, когда Windows создает окно. Прикладная программа может узнать значения по умолчанию и отменить их, обрабатывая сообщение WM_GETMINMAXINFO. Для получения дополнительной информации об этом сообщении, см. Сообщения о Размере и Позиции.

 
« Предыдущая статья   Следующая статья »