Funkcja SetWindowPos zmienia rozmiar, położenie i kolejności z okna wyskakujące lub najwyższego poziomu dziecka. Dziecko, okien podręcznych i najwyższego poziomu są sortowane zgodnie z ich wygląd na ekranie. Okno otrzymuje najwyższą rangę i jest pierwszym oknie w kolejności z.
(BOOL SetWindowPos HWND hWnd, / / dojście do oknaHWNDhWndInsertAfter, / / obsługi położenia zamówienieint X, / / pozioma pozycjaint Y, / / pionowe położenie int cx, // width int cy, // heightUINTuFlags / / pozycjonowania okna flagi);
| Wartość | Znaczenie |
|---|---|
| HWND_BOTTOM | Umieszcza okna na dole współrzędną. Jeśli parametr hWnd identyfikuje okno, okno straci swój status wierzchu i jest umieszczany na dole wszystkich innych okien. |
| HWND_NOTOPMOST | Umieszcza okna przede wszystkim brak najwyższej windows (oznacza to, że za wszystkich okien najwyższego). Ta flaga ma znaczenia, jeśli okno jest już-najwyższej okna. |
| HWND_TOP | Umieszcza okno w górnej części współrzędną. |
| HWND_TOPMOST | Umieszcza okna przede wszystkim brak najwyższej systemu windows. Okno utrzymuje swoje stanowisko dotyczące wierzchu, nawet wtedy, gdy jest dezaktywowany. |
Aby uzyskać więcej informacji na temat używania tego parametru zobacz następującą sekcję Uwagi.
| Wartość | Znaczenie |
|---|---|
| SWP_ASYNCWINDOWPOS | Jeśli wywołujący wątku nie jest właścicielem okna, system zaksięguje wniosek do wątku, który jest właścicielem okna. Zapobiega to wywołanie wątku blokowanie jego wykonanie, podczas gdy inne wątki przetworzyć żądania. |
| SWP_DEFERERASE | Zapobiega generowanie wiadomości WM_SYNCPAINT. |
| SWP_DRAWFRAME | Rysuje ramki (zdefiniowana w oknie klasy opis) wokół okna. |
| SWP_FRAMECHANGED | Wysyła komunikat WM_NCCALCSIZE aby oknie, nawet jeśli nie jest przy zmianie rozmiaru okna. Jeśli ta flaga nie jest określony, WM_NCCALCSIZE jest wysyłana tylko wtedy, gdy zmienia się rozmiar okna. |
| SWP_HIDEWINDOW | Ukrywa okno. |
| SWP_NOACTIVATE | Nie Uaktywnij okno. Jeśli ta flaga nie jest ustawiona, okno jest aktywowana i przeniósł się do górnej części albo grupy najwyższego lub najwyższej (w zależności od ustawienia parametru hWndInsertAfter ). |
| SWP_NOCOPYBITS | Usuwa całą zawartość obszaru klienckiego. Jeśli ta flaga nie jest określony, ważne zawartość obszaru klienta są zapisywane i kopiowane do obszaru klienckiego po oknie jest wielkości i położenia. |
| SWP_NOMOVE | Zachowuje bieżący stanowiska (ignoruje parametry x i Y ). |
| SWP_NOOWNERZORDER | Zmienia położenie okna właściciela w kolejności z. |
| SWP_NOREDRAW | Nie Przerysowuje zmiany. Jeśli ta flaga będzie ustawiona, nie odowieżenie wszelkiego rodzaju występuje. Odnosi się to do obszaru klienta, obszar nonclient (włączając w to pasek tytułu i pasków przewijania) i jakiejkolwiek części okna nadrzędnego bez przykrycia z okna przenoszone. Jeśli ta flaga będzie ustawiona, aplikacja musi jawnie unieważnia lub odświeżyć wszystkie części okna, a okno nadrzędne, że ponowne rysowanie. |
| SWP_NOREPOSITION | Sam jako flaga SWP_NOOWNERZORDER. |
| SWP_NOSENDCHANGING | Zapobiega odbieraniu wiadomości WM_WINDOWPOSCHANGING okna. |
| SWP_NOSIZE | Zachowuje bieżący rozmiar (ignoruje parametry cx i cy ). |
| SWP_NOZORDER | Zachowuje bieżący współrzędną (ignoruje parametr hWndInsertAfter ). |
| SWP_SHOWWINDOW | Wyświetla okno. |
Jeśli funkcja, wartość zwracany jest różna od zera.
Jeśli funkcja zawiedzie, wartość zwracany jest równa zero. Aby uzyskać rozszerzonych informacji o błędach, należy wywołać GetLastError.
Jeśli jest ustawiona flaga SWP_SHOWWINDOW lub SWP_HIDEWINDOW, okna nie mogą być przenoszone ani wielkości.
Jeśli uległy zmianie pewnych danych okno za pomocą SetWindowLong, należy wywołać SetWindowPos mieć efekt wprowadzonych zmian. Użyj następujących kombinacji dla uFlags: SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED.
Okna można wprowadzić okno, przez ustawienie parametru hWndInsertAfter do HWND_TOPMOST oraz zapewnienie, że nie jest ustawiona flaga SWP_NOZORDER, albo przez ustawienie położenie okna w kolejności Z, tak aby była ona powyżej wszelkich istniejących windows najwyższego. Najwyższej okno zrealizowaniu wierzchu, jego własnością systemu windows są również najwyższej. Jego właścicieli, jednak nie są zmieniane.
Jeśli flaga SWP_NOACTIVATE ani SWP_NOZORDER jest określony (oznacza to, że gdy aplikacja żąda, aby oknie jednocześnie aktywować i zmienił swoje stanowisko w kolejności Z), wartość określona w hWndInsertAfter jest używana tylko w następujących okolicznościach:
Aplikacja nie może uaktywnić okna nieaktywnego bez również doprowadzania do góry współrzędną. Aplikacje można zmienić położenie aktywnego okna w kolejności z bez ograniczeń, lub można uaktywnić okno i następnie przenieść go do górnej części okna najwyższego lub najwyższej.
Jeśli okno jest położenie do dołu (HWND_BOTTOM) współrzędną lub po dowolnego okna najwyższy, już jest najwyżej. Gdy okno jest niż najwyższy, jego właścicieli i jego własnością systemu windows zostaną wykonane-najwyższej systemu windows.
Najwyższej okna można własne okno, ale odwrotnie nie może występować. Wszystkie okna (na przykład okno dialogowe) posiadane przez okno jest dokonywane okno, aby zapewnić wszystkie posiadane windows pobytu powyżej ich właściciela.
Jeśli aplikacja nie jest na pierwszym planie i powinny być na pierwszym planie, należy wywołać funkcję SetForegroundWindow.
Systemu Windows CE: Jeśli jest to widoczne okno najwyższego poziomu, a nie określono flagę SWP_NOACTIVATE, ta funkcja będzie Uaktywnij okno. Jeśli jest aktualnie aktywnego okna, a nie określono flagę SWP_NOACTIVATE lub Flaga SWP_HIDEWINDOW, aktywacji jest przekazywane innym widocznego okna najwyższego poziomu.
Po ustawieniu flagi SWP_FRAMECHANGED w parametrze nFlags do tej funkcji Windows CE odrysowania cały obszar-klient okna, która może zmienić rozmiar obszaru klienckiego. To jest jedynym sposobem uzyskania obszaru klienta nie mają zostać ponownie obliczone i jest zazwyczaj używany po chcesz zmienić styl okna przez wywołanie SetWindowLong.
SetWindowPos zawsze spowoduje komunikat WM_WINDOWPOSCHANGED ma być wysłany do okna. Flagi przekazywane w tej wiadomości są dokładnie takie same, jak te, które są przekazywane do funkcji. Nie inne wiadomości są wysyłane przy użyciu tej funkcji.
Windows CE 1.0 nie obsługuje stałe HWND_TOPMOST i HWND_NOTOPMOST w parametrze hwndInsertAfter.
Windows CE 1.0 nie obsługuje flag SWP_DRAWFRAME lub SWP_NOCOPYBITS w fuFlags paramete.
nbsp; Windows &NT: wymagana wersja 3.1 lub nowsza.
Systemu Windows:Wymaga systemu Windows 95 lub nowszego.
Systemu Windows CE:Wymaga wersja 1.0 lub nowsza.
Nagłówka:Zadeklarowane w pliku winuser.h.
Importowanie biblioteki:Użycie user32.lib.
Omówienie Windows, okno funkcji, MoveWindow, SetActiveWindow, SetForegroundWindow