BeginDeferWindowPos
Функция BeginDeferWindowPos выделяет память для структуры, содержащей информацию о размере и положении для одного или более окон, и возвращает дескриптор этой структуры.
HDWP BeginDeferWindowPos
(
int
nNumWindows
// количество окон
);
Параметры
nNumWindows - определяет начальное количество окон, для которых необходимо хранить информацию об их положении. Функция DeferWindowPos при необходимости увеличивает размер данной структуры.
Возвращаемые значения
В случае успеха возвращается идентификатор структуры.
В случае нехватки доступных ресурсов системы для структуры возвращается
NULL
.
Комментарии
Структура, содержащая информацию о размере и положении для одного или более окон, является внутренней структурой
Windows
. Приложение не может иметь к ней прямой доступ.
Функция
DeferWindowPos
заполняет структуру информацией об одном или нескольких окнах, подлежащих перемещению. Функция
EndDeferWindowPos
принимает дескриптор структуры и репозиционирует окна в соответствии с информацией из данной структуры.
Если одно из окон, описанных в структуре, имеет установленный флаг
SWP
_
HIDEWINDOW
или
SWP
_
SHOWWINDOW
, то не репозиционируется ни одно из окон.
Если
Windows
должна увеличить размер структуры по сравнению с начальным размером, задающимся значением параметра
nNumWindows
, но не может выделить достаточно памяти, то вся последовательность перемещений окон (
BeginDeferWindowPos
,
DeferWindowPos
и
EndDeferWindowPos
) заканчивается неудачей. Указанием максимально необходимого размера структуры приложение может выявить и обработать сбой в самом начале всего процесса.
См. также
DeferWindowPos , EndDeferWindowPos , SetWindowPos .