DeferWindowPos

Funcția DeferWindowPos actualizează specificate multiple-fereastra-poziția structura pentru fereastra specificate. Funcția întoarce apoi un mâner pe structura actualizate. Funcția de EndDeferWindowPos utilizează informațiile din această structură pentru a modifica poziția și dimensiunea unui număr de windows simultan. Funcția BeginDeferWindowPos creează structura.

(HDWP DeferWindowPos HDWP  hWinPosInfo, / / manipula structura internăHWNDhWnd, / / ocupa fereastra pentru a poziționaHWNDhWndInsertAfter, / / comanda pentru amplasarea mânerint x, / / orizontală poziția int y, / / verticală poziția int cx, // width int cy, // heightUINTuFlags / / fereastra-poziționare steaguri);
 

Parametrii

hWinPosInfo
Ocupa un multiple-fereastra-structura pozi?ia care conține informații despre dimensiunea și poziția pentru una sau mai multe ferestre. Această structură este returnat de BeginDeferWindowPos sau de cele mai recente apelul la DeferWindowPos.
hWnd
Ocupa în fereastra pentru actualizare care informația este stocată în structura.
hWndInsertAfter
Ocupa în fereastra care precede 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.

Acest parametru este ignorată dacă pavilion SWP_NOZORDER este stabilit în parametrul uFlags.

x
Specifică coordonata x din colțul din stânga a ferestrei.
y
Specifică coordonata y din colțul stânga sus a ferestrei.
cx
Specifică lățimea fereastra de noi, în pixeli.
cy
Specifică înălțimea noi a ferestrei, în pixeli.
uFlags
Specifică o combinație de următoarele valori care afectează dimensiunea și poziția ferestrei:
Valoarea Sensul
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

Valoarea returnată identifică actualizat multiple-fereastra-structură de pozi?ie. Handle-ul returnat de această funcție poate diferi de mâner trecut la funcția. Mânerul noi că această funcție întoarce trebuie să fi trecut în timpul următorul apel la funcția DeferWindowPos sau EndDeferWindowPos.

Dacă există suficiente resurse de sistem pentru funcția de a reuși, valoarea returnată este NULL. Pentru a obține extins informa?ii eroare, apel GetLastError.

Observații

Dacă un apel la DeferWindowPos nu reușește, aplicarea ar trebui să abandoneze func?ionarea fereastra-poziționare și nu necesită EndDeferWindowPos.

Dacă SWP_NOZORDER nu este specificat, sistemul locuri fereastra identificate de parametrul hWnd în pozi?ia de la fereastra identificate de parametrul hWndInsertAfter . În cazul în care hWndInsertAfter este NULL sau HWND_TOP, sistemul locuri fereastra hWnd la partea de sus a ordinea Z. În cazul în care hWndInsertAfter este setat la HWND_BOTTOM, sistemul locuri fereastra hWnd la partea de jos a ordinea z.

Toate coordonatele pentru copil windows sunt relativ la colțul din stânga-sus din fereastra părinte client zona.

O fereastră poate face o fereastra setarea hWndInsertAfter la HWND_TOPMOST de pavilion și asigurându-se că SWP_NOZORDER de pavilion nu este setată, fie prin setarea fereastra de poziție î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. Cererea poate modifica poziția unei ferestre activated î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.

O fereastra nu mai este cel mai de sus în cazul în care aceasta este repoziționat în partea de jos (HWND_BOTTOM) de ordinea z sau după orice non-fereastra. 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 pot proprii o fereastra, dar nu și 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.

QuickInfo

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

A se vedea, de asemenea

Prezentare generală a Windows, fereastra Funcții, BeginDeferWindowPos, EndDeferWindowPos, ShowWindow

Index