Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО / Лекции / КурсЛекций.doc
Скачиваний:
94
Добавлен:
23.02.2015
Размер:
8.22 Mб
Скачать

Размер окна

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

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

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

Позиция окна

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

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

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

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

Если константа CW_USEDEFAULT указывается при создании дочернего или временного окна, Windows приравнивает размер окна заданному по умолчанию минимальному размеру окна.

Отслеживание размера окна (Tracking size)

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