Функція SetWindowPos змінює розмір, розташування та z порядку дитини, спливаючих елементів або верхнього рівня вікна. Дитина, спливаюче і верхнього рівня windows відсортовані відповідно до їх появи на екрані. Вікно верхнього отримує вищого рангу а перше вікно в Z-послідовності.
(BOOL SetWindowPos HWND hWnd, / / ручка вікнаHWNDhWndInsertAfter, / / ручка розміщення замовленняInt X, / / горизонтальна позиціяInt Y, / / вертикальну позицію int cx, // width int cy, // heightUINTuFlags / / вікно позиціонування прапори);
| Значення | Значення |
|---|---|
| HWND_BOTTOM | Розташовує вікно в нижній частині Z-послідовності. Якщо параметр hWnd визначає найвищого вікно, вікно втрачає свого найвищого статусу і знаходиться в нижній частині всіх інших вікон. |
| HWND_NOTOPMOST | Розташовує вікна перш за все не найвищий windows (тобто, позаду всіх найвищого windows). Цей прапор має ніякого ефекту, якщо вікно вже-найвищий вікно. |
| HWND_TOP | Розташовує вікна у верхній частині Z-послідовності. |
| HWND_TOPMOST | Розташовує вікна перш за все не найвищий windows. Вікна утримується його верхню позицію, навіть тоді, коли вона буде деактивовано. |
Щоб отримати додаткові відомості про те, як використовувати цей параметр перегляньте розділ такі зауваження.
| Значення | Значення |
|---|---|
| SWP_ASYNCWINDOWPOS | Якщо IP-телефонії потік не вікно, система посади запит на потік, який володіє вікна. Це запобігає виклику тема блокує його виконання, у той час як інші теми обробити запит. |
| SWP_DEFERERASE | Запобігає покоління WM_SYNCPAINT повідомлення. |
| SWP_DRAWFRAME | Малює рамки (визначені в клас у вікні Опис) навколо вікна. |
| SWP_FRAMECHANGED | Надсилає повідомлення WM_NCCALCSIZE вікна, навіть якщо не будучи змінюється розмір вікна. Якщо не вказано цей прапор, WM_NCCALCSIZE надсилається лише тоді, коли змінюється розмір вікна. |
| SWP_HIDEWINDOW | Приховування вікна. |
| SWP_NOACTIVATE | Не вдалося активувати вікно. Якщо не встановлено цю позначку, у вікні активується і переїхав до початку або верхній або найвищий групи (в залежності від значення параметра hWndInsertAfter ). |
| SWP_NOCOPYBITS | Видаляє весь вміст області клієнта. Якщо не вказано цей прапор, дійсний вміст області клієнта зберігаються й скопійовані назад в області клієнта після вікна розміром або переміщено. |
| SWP_NOMOVE | Зберігає поточну позицію (ігнорує параметри x та Y ). |
| SWP_NOOWNERZORDER | Не змінити власника вікно позицію в Z-послідовності. |
| SWP_NOREDRAW | Не перемальовування зміни. Якщо цей прапор, немає фарбування будь-якого відбувається. Це стосується клієнтської області, nonclient області (в тому числі заголовку та смуги прокручування), і будь-якій частині вікна батьківського виявили з вікна, будучи переїхали. Коли встановлено цю позначку, застосунок має явно недійсними або перемальовування будь-якої частини вікно та вікно з батьків, які повинні перемальовування. |
| SWP_NOREPOSITION | Так само, як прапор SWP_NOOWNERZORDER. |
| SWP_NOSENDCHANGING | Запобігає вікна повідомлення WM_WINDOWPOSCHANGING. |
| SWP_NOSIZE | Зберігає поточний розмір (ігнорує cx і cy параметри). |
| SWP_NOZORDER | Зберігає поточний Z-послідовності (ігнорує параметра hWndInsertAfter ). |
| SWP_SHOWWINDOW | Відображає вікно. |
Якщо функція завершено успішно, значення, що повертається, є ненульовим.
Якщо функцію не вдається, значення дорівнює нулю. Щоб отримати докладні відомості про помилку, зателефонуйте GetLastError.
Якщо SWP_SHOWWINDOW або SWP_HIDEWINDOW прапор, вікна не переміщено або розміром.
Якщо ви змінили деякі вікна даних за допомогою SetWindowLong, ви повинні викликати SetWindowPos , щоб зміни набули сили. Використання таких за uFlags: SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED.
Вікно може бути зроблено найвищого вікно, установивши параметр hWndInsertAfter HWND_TOPMOST і забезпечення того, що SWP_NOZORDER прапор не установлено або встановивши у вікно позицію в Z-послідовності, так, щоб будь-який верхнього вікна. Після-найвищий вікно верхнього свого належить windows також зроблені найвищого. Його власників, однак, не змінюються.
Якщо ні SWP_NOACTIVATE, ні SWP_NOZORDER прапор вказано (тобто, коли застосування запитує, що одночасно можна активувати вікно і змінили свою позицію в Z-послідовності), значення, вказаного в hWndInsertAfter використовується тільки в нижче обставин:
Застосунку не вдалося активувати неактивного вікна без також приведення її у верхню частину порядку Z. Додатки можна змінити активованого вікно позицію в Z-послідовності без обмежень, або його можна активувати вікно а потім перемістити його на початок верхнього або найвищий windows.
Якщо найвищого вікно змінює своє положення в нижній (HWND_BOTTOM) Z порядку, або після будь-якого-найвищий вікна, це не найвищий. Після найвищого вікно non найвищий його власників і його власності windows також зроблені-найвищий windows.
Найвищий вікно може володіти верхнього вікна, але реверс не може статися. Будь-яке вікно (наприклад, у діалоговому вікні), належать найвищому вікно є сам зробив верхнього вікна, щоб переконатися, що все у власності windows залишатися над їх власника.
Якщо програма не на передньому плані і повинна бути на передньому плані, він повинен викликати функцію SetForegroundWindow.
Windows CE: Якщо це відображається вікно верхнього рівня, а SWP_NOACTIVATE прапор не вказано, ця функція буде активувати вікно. При цьому в даний час активного вікна, і вказано або прапор SWP_NOACTIVATE або SWP_HIDEWINDOW прапор, активація передається на інший видно вікно верхнього рівня.
Під час встановлення SWP_FRAMECHANGED прапор у nFlags параметр функції Windows CE Перемальовує весь район-клієнт вікна, які можуть змінити розмір області клієнта. Це єдиний спосіб отримати області-клієнт, щоб переобчислити і зазвичай використовується після на змінення стиль вікна, зателефонувавши SetWindowLong.
SetWindowPos завжди буде причиною WM_WINDOWPOSCHANGED повідомлення буде відправлено до вікна. Прапори, які пройшли в це повідомлення є точно так само, як ті, що пройшло в функцію. Ні інші повідомлення надсилаються цю функцію.
Windows CE 1.0 не підтримує HWND_TOPMOST і HWND_NOTOPMOST константи в параметрі hwndInsertAfter.
Windows CE 1.0 не підтримує SWP_DRAWFRAME або SWP_NOCOPYBITS позначки в fuFlags paramete.
nbsp; Windows &NT: вимагає 3.1 або пізнішої версії.
Windows:Вимагає Windows 95 або пізнішої версії.
Windows CE:Потрібна Версія 1.0 або пізнішу версію.
Заголовка:Оголошена в winuser.h.
Імпортувати бібліотеки:Використання user32.lib.
Windows огляд, функції вікон, MoveWindow, SetActiveWindow, SetForegroundWindow