DeferWindowPos

DeferWindowPos функция обновляет указанное окно несколько – позиция структуры для указанного окна. Затем функция возвращает дескриптор обновленный структуры. Функция EndDeferWindowPos использует информацию в этой структуре изменить положение и размер несколько окон одновременно. Функция BeginDeferWindowPos создает структуры.

() HDWP DeferWindowPos HDWP  hWinPosInfo, / / обработать внутренней структурыHWNDhWnd, / / дескриптор окна для позиционированияHWNDhWndInsertAfter, / / обрабатывать порядка следованияint x, / / горизонтальное положение int y, / / вертикальное положение int cx, // width int cy, // heightUINTuFlags / / позиционирования окна флаги);
 

Параметры

hWinPosInfo
Дескриптор окна нескольких – позиция структуру, содержащую размер и положение сведения для одного или нескольких окон. Эта структура возвращается BeginDeferWindowPos или последнего вызова для DeferWindowPos.
hWnd
Дескриптор окна, для которого обновление информация хранится в структуре.
hWndInsertAfter
Дескриптор окна, которое предшествует позиционированные окон в Z-порядке. Этот параметр должен быть дескриптор окна или одно из следующих значений:
Значение Значение
HWND_BOTTOM Помещает окно в нижней части Z-порядка. Если параметр hWnd идентифицирует верхний окно, окно теряет свой верхний статус и помещается в нижней части всех остальных окон.
HWND_NOTOPMOST Помещает окно прежде всего верхний windows (то есть, за все верхнего окна). Этот флаг не работает, если это уже не верхний окно.
HWND_TOP Помещает окно в верхней части Z-порядка.
HWND_TOPMOST Помещает окно прежде всего верхний windows. Окна придерживается своей позиции, верхний, даже когда он отключается.

Этот параметр игнорируется, если установлен флаг SWP_NOZORDER в параметре uFlags.

x
Указывает координату x верхнего левого угла окна.
y
Указывает координату y верхнего левого угла окна.
cx
Определяет новую ширину окна в пикселах.
cy
Определяет новую высоту окна в пикселах.
uFlags
Определяет комбинацию следующих значений, которые влияют на размер и положение окна:
Значение Значение
SWP_DRAWFRAME Рисует рамку (определенная в описание класса окна) вокруг окна.
SWP_FRAMECHANGED Отправляет сообщение WM_NCCALCSIZE в окно, даже если размер окна не изменяется. Если этот флаг не указан, WM_NCCALCSIZE отправляется только при изменении размера окна.
SWP_HIDEWINDOW Скрывает окно.
SWP_NOACTIVATE Не активирует окно. Если этот флаг не установлен, окно активации и переехал в верхней части либо верхний-верхний группе или (в зависимости от настройки параметра hWndInsertAfter ).
SWP_NOCOPYBITS Удаляет все содержимое клиентской области. Если этот флаг не указан, допустимое содержимое клиентской области сохраняются и скопированы обратно в клиентской области после того, как окно размера или клемма.
SWP_NOMOVE Сохраняет текущую позицию (игнорирует параметры x и Y ).
SWP_NOOWNERZORDER Не изменяет положения окна-владельца в Z-порядке.
SWP_NOREDRAW Изменения не перерисовывать. Если этот флаг установлен, не перекраску любого вида происходит. Это относится к клиентской области, неклиентской области (включая строку заголовка и полосы прокрутки), и любой частью родительского окна обнаружили из окна перемещаются. Когда этот флаг установлен, приложение должно явно недействительной или перерисовать любой части окна и родительского окна, которое требуется перерисовка.
SWP_NOREPOSITION Же самое, что флаг SWP_NOOWNERZORDER.
SWP_NOSENDCHANGING Предотвращает получение сообщения WM_WINDOWPOSCHANGING окна.
SWP_NOSIZE Сохраняет текущий размер (игнорирует параметры cx и cy ).
SWP_NOZORDER Сохраняет текущий порядок Z (игнорирует параметр hWndInsertAfter ).
SWP_SHOWWINDOW Отображение окна.

Возвращаемые значения

Возвращаемое значение указывает обновленный несколькими окна – позиция структуры. Маркер, возвращенный функцией может отличаться от ручки, передаваемых в функцию. Эта функция возвращает новый дескриптор должен быть принят во время следующего вызова функции DeferWindowPos или EndDeferWindowPos.

Если для функции для успеха недостаточно системных ресурсов, возвращаемое значение равно NULL. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Примечания

К DeferWindowPos не удается, приложение должно отказаться от операции позиционирования окна и не вызывать EndDeferWindowPos.

Если SWP_NOZORDER не указан, система помещает окно, заданного параметром hWnd в положение после окна, определенного параметром hWndInsertAfter . Если hWndInsertAfter имеет значение NULL или HWND_TOP, система помещает hWnd окна в верхней части Z-порядка. Если hWndInsertAfter имеет значение HWND_BOTTOM, система помещает окно hWnd в нижней части Z-порядка.

Все координаты для дочерних окон указываются относительно левого верхнего угла клиентской области родительского окна.

Окно можно сделать верхнего окна, установив hWndInsertAfter для HWND_TOPMOST флага и обеспечение того, чтобы SWP_NOZORDER флаг не установлен, или путем установки позиция окна в Z-порядке таким образом, чтобы это выше любой существующий верхний windows. Когда не верхний окно переднего плана, его собственные окна также верхний. Ее владельцев, однако, не изменяются.

Если флаг ни SWP_NOACTIVATE, ни SWP_NOZORDER не задан (то есть, когда приложение запрашивает одновременно активации окна и изменить его позицию в последовательности Z), значение, указанное в hWndInsertAfter используется только в следующих случаях:

Приложение не может активировать неактивного окна без также привести его в начало Z-порядка. Приложение может изменить положение активированного окна в Z-порядке без ограничений или она может активировать окно и затем переместить его в верхнюю часть верхнего или не верхний окон.

Верхний окно больше не является верхний если изменении его положения в нижнюю (HWND_BOTTOM) Z порядка или после любого не верхний окна. Когда окно переднего плана не верхний, его владельцев и его собственные окна также не верхний windows.

Верхний окно может владеть окно переднего плана, но не наоборот. Сам по себе сделал верхнего окна, чтобы гарантировать, что все владел windows оставаться выше их владельцем является любое окно (например, диалоговое окно), принадлежащие в верхнем окне.

QuickInfo

nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Не поддерживается.
Заголовок:Объявленные в winuser.h.
Импорта библиотеки:Использование user32.lib.

Родственные слова

Обзор Windows, функции окна, BeginDeferWindowPos, EndDeferWindowPos, ShowWindow

Index