De SetWindowPos functie verandert de grootte, positie en Z-volgorde van een kind, pop-, of op het hoogste niveau venster. Kind, pop-, en op het hoogste niveau windows worden geordend volgens hun verschijning op het scherm. Het bovenste venster ontvangt de hoogste rang en is het eerste venster in de Z-volgorde.
BOOL SetWindowPos () HWND hWnd, / / verwerken naar vensterHWNDhWndInsertAfter, / / plaatsing-volgorde behandelenint X, / / horizontale positieint Y, / / verticale positie int cx, // width int cy, // heightUINTuFlags / / venster-positionering vlaggen);
| Waarde | Betekenis |
|---|---|
| HWND_BOTTOM | Het venster plaatsen aan de onderkant van de Z-volgorde. Als de parameter hWnd een bovenste venster identificeert, het venster zijn bovenste status verliest en is geplaatst op de bodem van alle andere vensters. |
| HWND_NOTOPMOST | Plaatst het venster vooral niet-bovenste windows (dat wil zeggen, achter alle bovenste vensters). Deze vlag heeft geen effect als het venster al een niet-bovenste venster is. |
| HWND_TOP | Het venster plaatsen boven aan de Z-volgorde. |
| HWND_TOPMOST | Het venster plaatsen vooral niet-bovenste windows. Het venster handhaaft haar bovenste positie zelfs wanneer het wordt gedeactiveerd. |
Zie voor meer informatie over hoe deze parameter wordt gebruikt, de volgende opmerkingen-sectie.
| Waarde | Betekenis |
|---|---|
| SWP_ASYNCWINDOWPOS | Als de aanroepende draad niet over het venster beschikt, berichten het systeem het verzoek aan de thread die eigenaar is van het venster. Hiermee voorkomt u dat de aanroepende thread blokkeert de uitvoering ervan, terwijl andere threads de aanvraag verwerkt. |
| SWP_DEFERERASE | Voorkomt dat de generatie van het WM_SYNCPAINT bericht. |
| SWP_DRAWFRAME | Vestigt een frame (gedefinieerd in de klasse Beschrijving van het venster) om het venster. |
| SWP_FRAMECHANGED | Een signaal WM_NCCALCSIZE naar de venster, zelfs als de grootte van het venster niet wordt gewijzigd. Als deze vlag niet is opgegeven, wordt WM_NCCALCSIZE verzonden slechts wanneer de grootte van het venster wordt gewijzigd. |
| SWP_HIDEWINDOW | Verbergt het venster. |
| SWP_NOACTIVATE | Activeert het venster niet. Als deze vlag niet is ingesteld, is het venster geactiveerd en bewogen tot de bovenkant van de beide bovenste of niet-bovenste groep (afhankelijk van de instelling van de parameter hWndInsertAfter ). |
| SWP_NOCOPYBITS | De gehele inhoud van het clientgebied van de teruggooi. Als deze vlag niet is opgegeven, zijn de geldige inhoud van het clientgebied opgeslagen en terug naar de client area gekopieerd nadat het venster is formaat of verplaatst. |
| SWP_NOMOVE | De huidige positie behoudt (negeert de X - en Y -parameters). |
| SWP_NOOWNERZORDER | Verandert niet de eigenaar van venster positie in de Z-volgorde. |
| SWP_NOREDRAW | Doet tekent niet veranderingen. Als deze vlag is ingesteld, treedt geen verversen van welke aard op. Dit geldt voor de clientgebied, het gebied van de nonclient (met inbegrip van de titelbalk en schuifbalken), en een deel van het bovenliggende venster ontdekt als gevolg van het venster wordt verplaatst. Wanneer deze vlag is ingesteld, moet de toepassing expliciet ongeldig of herschrijven delen van het venster en het bovenliggende venster die moeten opnieuw te laten tekenen. |
| SWP_NOREPOSITION | Hetzelfde als de vlag SWP_NOOWNERZORDER. |
| SWP_NOSENDCHANGING | Het venster verhindert WM_WINDOWPOSCHANGING bericht ontvangen. |
| SWP_NOSIZE | Altijd de huidige grootte (negeert de parameters cx en cy ). |
| SWP_NOZORDER | Behoudt de huidige Z-volgorde (de parameter hWndInsertAfter negeert). |
| SWP_SHOWWINDOW | Het venster wordt weergegeven. |
Als de functie slaagt, is de retourwaarde aan nul.
Als de functie mislukt, is de retourwaarde nul. Te krijgen uitgebreide foutinformatie, Bel GetLastError.
Als de vlag SWP_SHOWWINDOW of SWP_HIDEWINDOW is ingesteld, kan niet het venster worden verplaatst of formaat.
Als u bepaalde venster gegevens met behulp van SetWindowLonghebt gewijzigd, moet je bellen SetWindowPos dat de wijzigingen worden van kracht. De volgende combinatie gebruiken voor uFlags: SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED.
Een venster kan een bovenste venster worden gemaakt door de parameter hWndInsertAfter instelt op HWND_TOPMOST en ervoor te zorgen dat de SWP_NOZORDER vlag niet is ingesteld of door de instelling van een venster positie in de Z-volgorde, zodat het is boven elke bestaande bovenste vensters. Wanneer een niet-bovenste venster bovenste is gemaakt, zijn haar eigendom windows ook bovenste gemaakt. De eigenaren, worden echter niet gewijzigd.
Als noch de SWP_NOACTIVATE noch SWP_NOZORDER vlag is opgegeven (dat wil zeggen, wanneer de toepassing vraagt dat een venster gelijktijdig worden geactiveerd en haar positie in de Z-volgorde wordt gewijzigd), wordt de waarde die is opgegeven in hWndInsertAfter alleen gebruikt in de volgende omstandigheden:
Een toepassing kan een niet-actief venster niet activeren zonder ook brengen het naar de top van de Z-volgorde. Toepassingen kunnen wijzigen van een geactiveerde venster positie in de Z-volgorde zonder beperkingen, of het kan een venster activeren en het verplaatsen naar de bovenkant van de bovenste of niet-bovenste windows.
Als een bovenste venster is verplaatst naar de bodem (HWND_BOTTOM) van de Z-volgorde of na elk niet-bovenste venster, is het niet langer bovenste. Wanneer een bovenste venster is gemaakt niet-bovenste, zijn zijn eigenaars en haar eigendom windows ook niet-bovenste windows gemaakt.
Een niet-bovenste venster kan zelf een bovenste venster, maar het omgekeerde kan niet optreden. Een venster (bijvoorbeeld een dialoogvenster) eigendom van een bovenste venster is zelf gemaakt een bovenste venster, om ervoor te zorgen dat alle eigendom windows blijven boven hun eigenaar.
Als een toepassing niet op de voorgrond, en op de voorgrond moet worden, moet het de SetForegroundWindow functie aanroepen.
Windows CE: Als dit een zichtbaar venster op het hoogste niveau, en de SWP_NOACTIVATE vlag niet is opgegeven, zal deze functie wordt het venster geactiveerd. Als dit het momenteel actieve venster is, en of de SWP_HIDEWINDOW vlag als de vlag SWP_NOACTIVATE is opgegeven, is de activering doorgegeven aan een ander zichtbaar op het hoogste niveau venster.
In de parameter nFlags aan deze functie stelt u de vlag SWP_FRAMECHANGED, wordt het gehele niet-clientgebied van het venster, die van de grootte van het clientgebied veranderen kan opnieuw getekend Windows CE. Dit is de enige manier om het gebied niet-client opnieuw berekend en wordt meestal gebruikt nadat een u hebt de stijl venster gewijzigd door te bellen SetWindowLong.
SetWindowPos zal altijd leiden tot een WM_WINDOWPOSCHANGED-bericht worden verzonden naar het venster. De vlaggen doorgegeven in dit bericht zijn precies dezelfde als die aan de functie wordt doorgegeven. Geen andere berichten zijn verzonden door deze functie.
Windows CE 1.0 ondersteunt niet de constanten HWND_TOPMOST en HWND_NOTOPMOST in de hwndInsertAfter -parameter.
Windows CE 1.0 ondersteunt niet de vlaggen SWP_DRAWFRAME of SWP_NOCOPYBITS in de fuFlags paramete.
nbsp; Windows &NT: versie 3.1 of hoger vereist.
Windows:Windows 95 of hoger vereist.
Windows CE:Versie 1.0 of hoger vereist.
Header:Verklaard in winuser.h.
Bibliotheek importeren:User32.lib gebruiken.
Windows, overzicht, functies van het venster, MoveWindow, SetActiveWindow, SetForegroundWindow