DeferWindowPos функция обновляет указанное окно несколько – позиция структуры для указанного окна. Затем функция возвращает дескриптор обновленный структуры. Функция EndDeferWindowPos использует информацию в этой структуре изменить положение и размер несколько окон одновременно. Функция BeginDeferWindowPos создает структуры.
() HDWP DeferWindowPos HDWP hWinPosInfo, / / обработать внутренней структурыHWNDhWnd, / / дескриптор окна для позиционированияHWNDhWndInsertAfter, / / обрабатывать порядка следованияint x, / / горизонтальное положение int y, / / вертикальное положение int cx, // width int cy, // heightUINTuFlags / / позиционирования окна флаги);
Значение | Значение |
---|---|
HWND_BOTTOM | Помещает окно в нижней части Z-порядка. Если параметр hWnd идентифицирует верхний окно, окно теряет свой верхний статус и помещается в нижней части всех остальных окон. |
HWND_NOTOPMOST | Помещает окно прежде всего верхний windows (то есть, за все верхнего окна). Этот флаг не работает, если это уже не верхний окно. |
HWND_TOP | Помещает окно в верхней части Z-порядка. |
HWND_TOPMOST | Помещает окно прежде всего верхний windows. Окна придерживается своей позиции, верхний, даже когда он отключается. |
Этот параметр игнорируется, если установлен флаг SWP_NOZORDER в параметре 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 оставаться выше их владельцем является любое окно (например, диалоговое окно), принадлежащие в верхнем окне.
nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Не поддерживается.
Заголовок:Объявленные в winuser.h.
Импорта библиотеки:Использование user32.lib.
Обзор Windows, функции окна, BeginDeferWindowPos, EndDeferWindowPos, ShowWindow