SetWindowPos

Funcția SetWindowPos modifică dimensiunea, poziția și ordinea z un copil, de fereastra pop-up, sau nivel superior. Copil, ferestrele pop-up, și nivel superior sunt ordonate în funcție de aspectul lor de pe ecran. Fereastra primește cel mai înalt rang și este prima fereastră în ordinea z.

 (BOOL SetWindowPos HWND  hWnd, / / ocupa fereastraHWNDhWndInsertAfter, / / comanda pentru amplasarea mânerint X, / / orizontală pozițiaint Y, / / verticală poziția int cx, // width int cy, // heightUINTuFlags / / fereastra-poziționare steaguri);
 

Parametrii

hWnd
Ocupa în fereastra.
hWndInsertAfter
Ocupa în fereastra să preceadă fereastra poziționate în ordinea Z. Acest parametru trebuie să fie un mâner fereastra sau într-una din următoarele valori:
Valoarea Sensul
HWND_BOTTOM Plasează fereastra la partea de jos a ordinea Z. Dacă parametrul hWnd identifică o fereastra, fereastra pierde statutul său cel mai de sus și plasat în partea de jos a tuturor celorlalte ferestre.
HWND_NOTOPMOST Locuri fereastra windows mai presus de toate non-superior (care este, în spatele tuturor ferestrelor cel mai de sus). Acest drapel nu are efect dacă fereastra este deja un non-fereastra.
HWND_TOP Fereastra de locuri la partea de sus a ordinea z.
HWND_TOPMOST Plasează fereastra windows mai presus de toate non-superior. Fereastra menține poziția cea mai de sus, chiar și atunci când acesta este dezactivat.

Pentru mai multe informații despre modul în care acest parametru este utilizat, consultați secțiunea observa?ii următoarele.

X
Specifică poziția noi din partea stângă a ferestrei, în coordonate de client.
Y
Specifică poziția noi din partea de sus a ferestrei, în coordonate de client.
cx
Specifică lățimea noi a ferestrei, în pixeli.
cy
Specifică înălțimea noi a ferestrei, în pixeli.
uFlags
Specifică fereastra dimensionarea și poziționare steaguri. Acest parametru poate fi o combinație de următoarele valori:
Valoarea Sensul
SWP_ASYNCWINDOWPOS Dacă firul de asteptare nu propria fereastră, sistemul posturi cererea pentru firul care deține fereastra. Aceasta împiedică firul de asteptare blochează executarea sa în timp ce alte fire procesa solicitarea.
SWP_DEFERERASE Previne generație de mesaj WM_SYNCPAINT.
SWP_DRAWFRAME Desenează un cadru (definit în fereastra de descriere de clasă) în jurul fereastra.
SWP_FRAMECHANGED Trimite un mesaj WM_NCCALCSIZE pentru fereastra, chiar în cazul în care dimensiunea ferestrei nu este fiind schimbat. Dacă nu este specificat acest flag, WM_NCCALCSIZE este trimis doar atunci când fereastra de dimensiune este fiind schimbat.
SWP_HIDEWINDOW Ascunde fereastra.
SWP_NOACTIVATE Nu activați fereastra. Dacă acest flag nu este setată, fereastra este activat și s-a mutat în partea de sus a fie superior sau non-superior grupului (în funcție de setarea parametrului hWndInsertAfter ).
SWP_NOCOPYBITS Renunță la întregul conținut al zona de client. Dacă nu este specificat acest flag, conținutul valabil din zona de client sunt salvate și copiat înapoi în zona de client după fereastra dimensiuni sau repoziționate.
SWP_NOMOVE Păstrează poziția curentă (ignoră parametrii x și Y ).
SWP_NOOWNERZORDER Nu schimbă proprietarul fereastra de poziție în ordinea z.
SWP_NOREDRAW Nu redesenează modificări. Dacă acest flag este setat, revopsire nu de orice fel se produce. Acest lucru se aplică în zona de client, zona nonclient (inclusiv bara de titlu și barele de defilare), și orice parte din fereastra părinte descoperit ca urmare a fereastra deplasate. Când este stabilit acest flag, aplicarea în mod explicit trebuie să anula sau redesena orice păr?i ale ferestrei și fereastra părinte care trebuie redesenarea.
SWP_NOREPOSITION Fel ca pavilionul SWP_NOOWNERZORDER.
SWP_NOSENDCHANGING Împiedică primirea mesajului WM_WINDOWPOSCHANGING fereastra.
SWP_NOSIZE Păstrează dimensiunea curentă (ignoră parametrii cx și cy ).
SWP_NOZORDER Păstrează curente ordinea Z (ignoră parametrul hWndInsertAfter ).
SWP_SHOWWINDOW Afișează fereastra.

Valorile întroarse

Dacă funcția reușește, valoarea returnată este nenul.

Dacă funcția nu reușește, valoarea returnată este zero. Pentru a obține extins informa?ii eroare, apel GetLastError.

Observații

Dacă este setat pavilion SWP_SHOWWINDOW sau SWP_HIDEWINDOW, fereastra nu poate fi mutat sau dimensiuni.

Dacă ați modificat anumite date fereastra folosind SetWindowLong, apelați SetWindowPos modificările în vigoare. Utilizați combinația următoarele pentru uFlags: SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED.

O fereastră poate face o fereastra, setând parametrul hWndInsertAfter pentru HWND_TOPMOST ?i asigurând pavilion SWP_NOZORDER nu este setată, fie setând o fereastră poziția în ordinea z astfel încât este mai sus orice existente windows cel mai de sus. Atunci când un non-fereastra se face cel mai de sus, său deținute în windows, de asemenea, sunt făcute cel mai de sus. Proprietarii săi, cu toate acestea, nu sunt modificate.

Dacă drapelul nici SWP_NOACTIVATE, nici SWP_NOZORDER nu este specificat (adică, atunci când cererea se referă că o fereastră simultan activat și poziția sa în ordinea z schimbat), valoarea specificată în hWndInsertAfter este utilizat numai în următoarele circumstanțe:

O cerere nu se poate activa o fereastră inactivă fără, de asemenea, aducând-o la partea de sus a ordinea Z. Cererile pot schimba poziția o fereastră activat în ordinea z fără restricții, sau se poate activa o fereastră și apoi mutați-l în partea de sus a windows superior sau non-superior.

Dacă o fereastra este repoziționat în partea de jos (HWND_BOTTOM) de ordinea z sau după orice non-fereastra, nu mai este cel mai de sus. Atunci când o fereastra se face non-rădăcină, proprietarii sale și sale deținute windows sunt făcute, de asemenea, non-superior windows.

Un non-fereastra poate propriu o fereastra, dar nu se poate produce inversă. Orice fereastră (de exemplu, o casetă de dialog) deținute de o fereastra este ea însăși o fereastra, pentru a se asigura că toate deținute windows stați de mai sus lor proprietar a făcut.

Dacă o cerere nu este în prim-plan, și ar trebui să fie în prim-plan, acesta trebuie să apela funcția SetForegroundWindow.

Windows CE: Dacă aceasta este o fereastră vizibile de nivel superior, și SWP_NOACTIVATE de pavilion nu este specificat, această funcție va activa fereastra. Dacă acest lucru este fereastra activă și SWP_NOACTIVATE de pavilion sau pavilionul SWP_HIDEWINDOW este specificat, activarea este trecut la altă fereastră vizibile de nivel superior.

Când setați pavilion SWP_FRAMECHANGED în parametrul nFlags pentru această funcție, Windows CE redesenează întreaga zonă non-client a ferestrei, care pot modifica dimensiunea zonei de client. Aceasta este singura modalitate de a obține zona non-client să fie recalculată și este de obicei folosit după o ați modificat stilul de fereastra prin apelarea SetWindowLong.

SetWindowPos va cauza mereu un mesaj WM_WINDOWPOSCHANGED pentru a fi trimisă la fereastra. Steagurile a trecut în acest mesaj sunt exact la fel ca cei care au trecut în funcția. Alte mesaje sunt trimise de către această funcție.

Windows CE 1.0 nu acceptă constante HWND_TOPMOST și HWND_NOTOPMOST în parametrul hwndInsertAfter.

Windows CE 1.0 nu acceptă steagurile SWP_DRAWFRAME sau SWP_NOCOPYBITS în fuFlags paramete.

QuickInfo

nbsp; Windows &NT: necesită versiunea 3.1 sau mai târziu.
Windows:Necesită Windows 95 sau o versiune ulterioară.
Windows CE:Necesită versiunea 1.0 sau mai târziu.
Antet:A declarat în winuser.h.
Import Biblioteca:Utilizarea user32.lib.

A se vedea, de asemenea

Prezentare generală a Windows, fereastra Funcții, MoveWindow, SetActiveWindow, SetForegroundWindow

Index