DeferWindowPos

Funksjonen DeferWindowPos oppdaterer det angitte flere vinduet – struktur for det angitte vinduet. Deretter returnerer funksjonen en referanse til den oppdaterte strukturen. EndDeferWindowPos -funksjonen bruker informasjonen i denne strukturen for å endre plasseringen og størrelsen på en rekke windows samtidig. Funksjonen BeginDeferWindowPos oppretter strukturen.

() HDWP DeferWindowPos HDWP  hWinPosInfo, / / håndtere til intern strukturHWNDhWnd, / / håndtere til vinduet for å plassereHWNDhWndInsertAfter, / / plassering-rekkefølgen håndtereInt x, / / horisontal posisjon int y, / / vertikal posisjon int cx, // width int cy, // heightUINTuFlags / / vinduet-posisjonering flags);
 

Parametere

hWinPosInfo
Håndtere å en flere vinduer-struktur som inneholder informasjon om størrelsen og plasseringen for ett eller flere vinduer. Denne strukturen er returnert av BeginDeferWindowPos eller av de siste kallet til DeferWindowPos.
hWnd
Håndtere til vinduet for hvilken oppdatering informasjon lagret i strukturen.
hWndInsertAfter
Håndtere til vinduet som står foran vinduet plasserte i Z-rekkefølge. Denne parameteren må være en vindusreferanse eller en av følgende verdier:
Verdi Betydning
HWND_BOTTOM Plasserer vinduet nederst i Z-rekkefølge. Hvis parameteren hWnd identifiserer et vindu, vinduet mister sin øverste status og er plassert nederst i alle andre vinduer.
HWND_NOTOPMOST Plasserer vinduet fremfor alt ikke-øverste windows (det vil si bak alle øverste windows). Dette flagget har ingen virkning hvis vinduet er allerede en ikke-vindu.
HWND_TOP Plasserer vinduet på toppen av Z-rekkefølge.
HWND_TOPMOST Plasserer vinduet fremfor alt ikke-øverste windows. Vinduet beholder posisjonen øverste selv når den er deaktivert.

Denne parameteren ignoreres hvis flagget SWP_NOZORDER er angitt i parameteren uFlags.

x
Angir x-koordinaten for vinduets øvre venstre hjørne.
y
Angir y-koordinaten for vinduets øvre venstre hjørne.
cx
Angir vinduets nye bredden, i piksler.
cy
Hvis du angir i vinduet ny høyde, i piksler.
uFlags
Angir en kombinasjon av de følgende verdiene som påvirker størrelsen og plasseringen av vinduet:
Verdi Betydning
SWP_DRAWFRAME Tegner en ramme (definert i vinduets klassen beskrivelse) rundt vinduet.
SWP_FRAMECHANGED Sender en WM_NCCALCSIZE melding til vinduet, selv om vindusstørrelsen ikke er endret. Hvis dette flagget ikke er angitt, sendes WM_NCCALCSIZE bare når vindusstørrelsen endres.
SWP_HIDEWINDOW Skjuler vinduet.
SWP_NOACTIVATE Aktiverer ikke vinduet. Hvis dette flagget ikke er angitt, kan det hende at vinduet er aktivert og flyttet til toppen av den øverste eller ikke-øverste gruppen (avhengig av innstillingen for parameteren hWndInsertAfter ).
SWP_NOCOPYBITS Forkaster hele innholdet i klientområdet. Hvis dette flagget ikke er angitt, er gyldig innholdet i klientområdet lagret og kopiert tilbake til klientområdet når vinduet er størrelse eller plassering.
SWP_NOMOVE Beholder gjeldende posisjon (ignorerer parameterne x og Y ).
SWP_NOOWNERZORDER Endrer ikke eiervinduets posisjon i Z-rekkefølge.
SWP_NOREDRAW Ikke omtegne endringer. Hvis dette flagget er angitt, oppstår ingen oppdatering av noe slag. Dette gjelder klientområdet, nonclient området (inkludert tittellinjen og rullefelt), og noen del av det overordnede vinduet avdekket som et resultat av vinduet blir flyttet. Når dette flagget er angitt, må programmet eksplisitt ugyldiggjøre eller trekke tilbake alle deler av vinduet og overordnet vindu som trenger oppdatering.
SWP_NOREPOSITION Samme som SWP_NOOWNERZORDER-flagg.
SWP_NOSENDCHANGING Forhindrer at vinduet motta WM_WINDOWPOSCHANGING-melding.
SWP_NOSIZE Beholder gjeldende størrelse (ignorerer parameterne cx og cy ).
SWP_NOZORDER Beholder gjeldende Z-rekkefølge (ignorerer parameteren hWndInsertAfter ).
SWP_SHOWWINDOW Viser vinduet.

Returverdier

Returverdien identifiserer det oppdaterte flere vinduet-struktur. Referansen som ble returnert av denne funksjonen kan være forskjellig fra håndtaket sendes til funksjonen. Et nytt håndtak som denne funksjonen returnerer bør sendes under det neste kallet til funksjonen DeferWindowPos eller EndDeferWindowPos.

Hvis det finnes ikke nok systemressurser funksjonen skal lykkes, er verdien som returneres NULL. Til å vise utvidet feilinformasjon, kan du ringe GetLastError.

Merknader

Hvis et kall til DeferWindowPos mislykkes, kan det hende at programmet bør forlate operasjonen vinduet plassering og ikke kalle EndDeferWindowPos.

Hvis SWP_NOZORDER ikke er angitt, plasserer vinduet identifisert av parameteren hWnd i posisjon etter vinduet identifisert av parameteren hWndInsertAfter i systemet. Hvis hWndInsertAfter er NULL eller HWND_TOP, plasserer vinduet hWnd øverst i Z-rekkefølgen i systemet. Hvis hWndInsertAfter er satt til HWND_BOTTOM, plasserer systemet vinduet hWnd nederst i Z-rekkefølge.

Alle koordinatene for underordnede vinduer er relative til øverste venstre hjørne av det overordnede vinduet klientområdet.

Et vindu kan gjøres som et vindu ved å sette hWndInsertAfter til HWND_TOPMOST-flagg og å sikre at SWP_NOZORDER-flagget ikke er angitt, eller ved å angi vindusplasseringen i Z-rekkefølge slik at det er over alle eksisterende øverste Vinduer. Når en ikke-øverste vinduet gjøres øverste, er sin eid windows også gjort i øverste. Dens eiere, men er ikke endret.

Hvis verken SWP_NOACTIVATE eller SWP_NOZORDER-flagget er angitt (det vil si når programmet ber om at et vindu aktiveres samtidig og sin posisjon i Z-rekkefølgen endret), brukes verdien som er angitt i hWndInsertAfter bare under følgende omstendigheter:

Et program kan ikke aktivere et inaktivt vindu uten å vise det til toppen av Z-rekkefølge. Et program kan endre et aktivert vindu plassering i Z-rekkefølge uten begrensninger, eller de kan aktivere et vindu og deretter flytte det til toppen av det øverste eller ikke-øverste Vinduer.

Et vindu er ikke lenger øverste Hvis det omplasseres til bunnen (HWND_BOTTOM) av Z-rekkefølge eller etter eventuelle ikke-øverste vinduet. Når en øverste vinduet gjøres ikke-øverste, er dens eiere og vinduene eide også laget ikke-øverste windows.

En ikke-øverste vinduet kan eie et vindu, men ikke omvendt. Alle vinduer (for eksempel en dialogboks) eies av en vindu er selve gjort en øverste vinduet for å sikre at alle eid Vinduer Bo over deres eier.

Hurtiginformasjon

nbsp; Windows &NT: krever versjon 3.1 eller senere.
Windows:Krever Windows 95 eller senere.
Windows CE:Som ikke støttes.
Topptekst:Deklarert i winuser.h.
Importere biblioteket:Bruk user32.lib.

Se også

Oversikt over Windows, vinduet funksjoner, BeginDeferWindowPos, EndDeferWindowPos, ShowWindow

Index