См . также
AdjustWindowRect, CreateWindowEx, RECT .
Функция ArrangeIconicWindows упорядочивает все минимизированные (в виде иконок) окна указанного родительского окна.
UINT ArrangeIconicWindows (
HWND hWnd // дескриптор родительского окна
);
Параметры
hWnd - идентифицирует родительское окно.
Возвращаемые значения
В случае успеха возвращается высота одного ряда иконок.
В случае неудачи возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError .
Комментарии
Приложение, которое работает со своими минимизированными дочерними окнами, может использовать функцию ArrangeIconicWindows для упорядочивания иконок окон в родительском окне. Функция также может упорядочивать иконки окон на рабочем столе. Для получения дескриптора рабочего стола используйте функцию GetDesktopWindow .
Приложение отправляет сообщение WM _ MDIICONARRANGE MDI -окну для упорядочивания его минимизированных дочерних MDI -окон.
См. также
CloseWindow, GetDesktopWindow .
Функция BeginDeferWindowPos выделяет память для структуры, содержащей информацию о размере и положении для одного или более окон, и возвращает дескриптор этой структуры.
HDWP BeginDeferWindowPos (
int nNumWindows // количество окон
);
Параметры
nNumWindows - определяет начальное количество окон, для которых необходимо хранить информацию об их положении. Функция DeferWindowPos при необходимости увеличивает размер данной структуры.
Возвращаемые значения
В случае успеха возвращается идентификатор структуры.
В случае нехватки доступных ресурсов системы для структуры возвращается NULL .
Комментарии
Структура, содержащая информацию о размере и положении для одного или более окон, является внутренней структурой Windows . Приложение не может иметь к ней прямой доступ.
Функция DeferWindowPos заполняет структуру информацией об одном или нескольких окнах, подлежащих перемещению. Функция EndDeferWindowPos принимает дескриптор структуры и репозиционирует окна в соответствии с информацией из данной структуры.
Если одно из окон, описанных в структуре, имеет установленный флаг SWP _ HIDEWINDOW или SWP _ SHOWWINDOW, то не репозиционируется ни одно из окон.
Если Windows должна увеличить размер структуры по сравнению с начальным размером, задающимся значением параметра nNumWindows , но не может выделить достаточно памяти, то вся последовательность перемещений окон ( BeginDeferWindowPos, DeferWindowPos и EndDeferWindowPos ) заканчивается неудачей. Указанием максимально необходимого размера структуры приложение может выявить и обработать сбой в самом начале всего процесса.
См. также
DeferWindowPos, EndDeferWindowPos, SetWindowPos .
Функция BringWindowToTop помещает указанное окно в вершину Z -последовательности. Если окно является окном верхнего уровня - оно активизируется. Если окно представляет собой дочернее окно - активизируется родительское окно верхнего уровня.
BOOL BringWindowToTop (
HWND hWnd // дескриптор окна
);
Параметры
hWnd - идентифицирует окно, помещаемое в вершину Z -последовательности.
Возвращаемые значения
В случае успеха возвращается ненулевое значение.
В случае неудачи возвращается нуль. Для получения дополнительной информации вызовите функцию GetLastError .
Комментарии
Используйте функцию BringWindowToTop для вывода окна, частично или полностью закрытого другими окнами, на передний план.
Результат вызова этой функции похож на результат вызова SetWindowPos для изменения позиции окна в Z -последовательности, но вызов BringWindowToTop не делает указанное окно окном верхнего уровня.
Если приложение не находится на переднем плане, и необходимо сделать его приложением переднего плана, вызовите функцию SetForegroundWindow .
См. также
SetWindowPos, SetActiveWindow, SetForegroundWindow .
Функция CascadeWindows располагает каскадом (каскадирует) указанные окна или дочерние окна указанного родительского окна.
WORD WINAPI CascadeWindows (
HWND hwndParent , // дескриптор родительского окна
UINT wHow , // типы окон, которые не подвергаются каскадированию
CONST RECT * lpRect , // прямоугольник, в которым каскадируются окна
UINT cKids , // количество каскадируемых окон
const HWND FAR *lpKids // массив дескрипторов окон
);
Параметры
hwndParent - идентифицирует родительское окно. Если значение этого параметра равно NULL, используется окно рабочего стола.
wHow - определяет флаг каскадирования. Доступно единственное значение: MDITILE _ SKIPDISABLED, предотвращающее каскадирование дочерних MDI окон, не принимающих ввод пользователя ( disabled windows ).
lpRect - указатель на структуру типа SMALL _ RECT , которая определяет прямоугольную область, в экранных координатах, внутри которой каскадируются окна. Значение параметра может быть равно NULL, тогда используется клиентская область родительского окна.
cKids - определяет число элементов в массиве, заданным параметром lpKids . Значение параметра игнорируется, если значение lpKids равно нулю.
lpKids - указатель на массив дескрипторов окон, идентифицирующих каскадируемые окна. Если значение этого параметра равно NULL, каскадируются дочерние окна указанного родительского окна (или окна рабочего стола).
Возвращаемые значения
В случае успеха возвращается количество упорядоченных окон.
В случае неудачи возвращается нуль.
См. также
SMALL_RECT .
Функция ChildWindowFromPoint определяет, какое из дочерних окон, принадлежащих родительскому окну, содержит указанную точку (если таки дочерние окна существуют).
HWND ChildWindowFromPoint (
HWND hWndParent , // дескриптор родительского окна
POINT Point // структура с координатами точки
);
Параметры
hWndParent - идентифицирует родительское окно.
Point - определяет структуру типа POINT , которая содержит клиентские координаты проверяемой точки.
Возвращаемые значения
В случае успеха возвращается дескриптор дочернего окна, которое содержит точку, даже если это дочернее окно скрыто или не принимает фокус ввода ( disabled ). Если точка лежит вне родительского окна, возвращается NULL . Если точка находится внутри родительского окна, но не лежит ни в одном из дочерних окон, возвращается дескриптор родительского окна.
Комментарии
Windows ведет внутренний список, содержащий дескрипторы дочерних окон, связанных с родительским окном. Порядок дескрипторов в этом списке зависит от Z -последовательности дочерних окон. Если указанная точка содержится более чем в одном дочернем окне, Windows возвращает дескриптор первого окна в списке, содержащего точку.
См. также
ChildWindowFromPointEx, POINT, WindowFromPoint .
Функция ChildWindowFromPointEx определяет, какое из дочерних окон, принадлежащих родительскому окну, содержит указанную точку (если таки дочерние окна существуют). Функция может игнорировать невидимые, не принимающие фокус ввода ( disabled ) и прозрачные дочерние окна.
HWND ChildWindowFromPointEx (
HWND hwndParent , // дескриптор родительского окна
POINT pt , // структура с координатами точки
UINT uFlags // флаги игнорирования
);
Параметры
hWndParent - идентифицирует родительское окно.
Point - определяет структуру типа POINT , которая содержит клиентские координаты проверяемой точки.
uFlags - определяет, какие дочерние окна будут игнорироваться. Параметр может быть комбинацией следующих значений:
Значение