SetWindowPos

SetWindowPos funkcia zmení veľkosť, polohu a poradie vykresľovania dieťaťa, automaticky otváraných okien alebo najvyššej úrovne okna. Dieťa, okná pop-up a najvyššej úrovne sa zoradia podľa ich vzhľad na obrazovke. Hlavné okno dostane jeho najvyššia hodnosť a je prvým okne poradie vykresľovania.

 BOOL SetWindowPos ( HWND  hWnd; / / spracovať do oknaHWNDhWndInsertAfter; / / umiestnenie poradia rukoväťint X; / / horizontálnej poloheint Y; / / vertikálnej polohy int cx, // width int cy, // heightUINTuFlags / / umiestnenie okna flags);
 

Parametre

hWnd
Spracovať do okna.
hWndInsertAfter
Spracovať do okna predchádzať okna umiestnená v poradie vykresľovania. Tento parameter musí byť okno rukoväť alebo jedna z nasledujúcich hodnôt:
Hodnota Význam
HWND_BOTTOM Umiestni okno v spodnej časti poradie vykresľovania. Ak hWnd parameter určuje hlavné okno, okno stratí svoj štatút najvyššej a je umiestnený v spodnej časti všetky ostatné okná.
HWND_NOTOPMOST Umiestni okno nad všetkými non-najvyššej windows (t. j. za všetky najvyššej okná). Táto vlajka nemá žiadny vplyv, ak už je okno-najvyššej okno.
HWND_TOP Umiestni okno v hornej časti poradie vykresľovania.
HWND_TOPMOST Umiestni okno nad všetkými non-najvyššej systému windows. Okno tvrdí jeho najvyššej pozícii, aj vtedy, keď je deaktivovaný.

Ďalšie informácie o tom, ako sa použije tento parameter, nájdete v časti nasledovné poznámky.

X
Určuje nové miesto v ľavej časti okna klienta súradnice.
Y
Určuje novú polohu hornej časti okna, v klientovi súradnice.
cx
Určuje novú šírku okna, v pixeloch.
cy
Určuje novej výšky okna, v pixeloch.
uFlags
Určuje okna veľkosti a polohy vlajky. Tento parameter môže byť kombinácia nasledovných hodnôt:
Hodnota Význam
SWP_ASYNCWINDOWPOS Ak volajúci vlákno nevlastní okna systému miest žiadosť na vlákno, ktoré vlastní v okne. To bráni volajúci vlákno blokovanie jeho realizácie, kým ostatné vlákna spracovať žiadosť.
SWP_DEFERERASE Zabraňuje vzniku WM_SYNCPAINT správy.
SWP_DRAWFRAME Nakreslí rámu (definované v opisu triedy v okne) okolo okien.
SWP_FRAMECHANGED Odošle správu WM_NCCALCSIZE do okna, dokonca aj vtedy, ak veľkosť okna sa nezmení. Ak nie je určená táto vlajka, WM_NCCALCSIZE sa odošle iba vtedy, ak sa zmení veľkosť okna.
SWP_HIDEWINDOW Skryje okno.
SWP_NOACTIVATE Neaktivujú okna. Ak nie je tento príznak, okno je aktivovaný a presťahoval do hornej časti najvyššej alebo najvyššej skupiny, (v závislosti na nastavení parametra hWndInsertAfter ).
SWP_NOCOPYBITS Odstráni sa celý obsah do klientskej oblasti. Ak táto vlajka nie je zadaný, platné obsahu do klientskej oblasti sú uložené a skopírované späť do oblasti klienta po veľkosti alebo premiestnená okna.
SWP_NOMOVE Zachová aktuálnu pozíciu (ignoruje parametre x a Y ).
SWP_NOOWNERZORDER Nemení polohu okna vlastník v poradie vykresľovania.
SWP_NOREDRAW Nie prekresliť zmeny. Ak je nastavená táto vlajka, no náterov akéhokoľvek druhu vyskytuje. Toto sa vzťahuje na oblasti klienta nonclient oblasti (vrátane záhlavia a posúvače) a akejkoľvek časti rodičovské okno nepotiahnutého tohto okna premiestňujú. Ak je nastavená táto vlajka žiadosti musí výslovne vyvrátiť alebo obnovte všetky časti okna a rodičovské okno, ktoré je potrebné redrawing.
SWP_NOREPOSITION Rovnaké ako príznak SWP_NOOWNERZORDER.
SWP_NOSENDCHANGING Zabraňuje okna hlásenie WM_WINDOWPOSCHANGING.
SWP_NOSIZE Zachová aktuálnu veľkosť (ignoruje parametre cx a cy ).
SWP_NOZORDER Zachováva súčasný poradie vykresľovania (ignoruje hWndInsertAfter parameter).
SWP_SHOWWINDOW Zobrazí okno.

Note:

Ak funkciu podarí, vrátená hodnota je nenulové.

Ak funkcia zlyhá, vrátená hodnota je nula. Získajte rozšírené informácie o chybách, volajte na číslo GetLastError.

Poznámky

Ak je nastavený príznak SWP_SHOWWINDOW alebo SWP_HIDEWINDOW, okno nemôže byť presunutý alebo triedené podľa veľkosti.

Ak ste zmenili niektoré okno údajov pomocou SetWindowLong, budete volať SetWindowPos aby sa zmeny prejavili. Použiť nasledovné kombinácie uFlags: SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED.

Okno možno najvyššej okno nastavením parametra hWndInsertAfter na HWND_TOPMOST a zabezpečenie nie je nastavený príznak SWP_NOZORDER alebo nastavením polohu okna v poradie vykresľovania tak, aby sa vyššie všetky existujúce najvyššej okná. Ak je najvyššej-najvyššej okno, jeho vlastní okien sa tiež najvyššej. Svojich vlastníkov však nezmenia.

Ak ani SWP_NOACTIVATE, ani SWP_NOZORDER vlajkou je zadaný (t. j. pri podaní žiadosti, že súčasne aktivovať okno a zmenila svoju pozíciu poradie vykresľovania), hodnoty špecifikovanej v bode hWndInsertAfter sa používa iba v nasledujúcich prípadoch:

Žiadosť nie je možné aktivovať neaktívneho okna bez toho, aby sa tiež prináša do hornej časti poradie vykresľovania. Aplikácie môžete zmeniť pozíciu aktivovaný okna v poradie vykresľovania bez obmedzení alebo ho aktivovať okno a potom ho premiestnite na začiatok najvyššej alebo najvyššej okien.

Ak okno je premiestnená na dne (HWND_BOTTOM) poradie vykresľovania alebo po-najvyššej okno, už je najvyššej. Pri najvyššom okno sa mimo najvyššej svojich vlastníkov a jeho vlastní okien sa tiež-najvyššej windows.

Najvyššej okno môžete vlastné okno, ale naopak nemôže nastať. Ľubovoľného okna (napríklad dialógové) vo vlastníctve najvyššej okno je sama najvyššej okno na zabezpečenie toho, že všetky vo vlastníctve, windows zostať nad ich vlastníkom.

Ak žiadosť nie je v popredí a by mali byť v popredí, musí volať funkciu SetForegroundWindow.

Windows CE: Ak je viditeľné najvyššej úrovne okno príznak SWP_NOACTIVATE nie je zadaný, táto funkcia aktivuje okno. Ak je to v súčasnosti aktívne okno a je určená SWP_NOACTIVATE vlajkou alebo SWP_HIDEWINDOW vlajkou, aktivácia postúpená iného viditeľného najvyššej úrovne okna.

Keď ste nastavili príznak SWP_FRAMECHANGED v parametri nFlags na túto funkciu, Windows CE prekresľuje celej oblasti-klient môže zmeniť veľkosť plochy klientskeho okna. Toto je jediný spôsob, ako dostať oblasti-klient prepočítať a sa obyčajne používa po ste zmenili štýl okna volaním SetWindowLong.

SetWindowPos vždy spôsobí WM_WINDOWPOSCHANGED správa sa odošle do okna. Príznaky zložil v tejto správe sú presne rovnaké ako tých, ktorí prešli do funkcie. Iné správy odosielajú touto funkciou.

Systém Windows CE 1.0 nepodporuje HWND_TOPMOST a HWND_NOTOPMOST konštanty v parametri hwndInsertAfter.

Systém Windows CE 1.0 nepodporuje príznaky SWP_DRAWFRAME alebo SWP_NOCOPYBITS v fuFlags paramete.

Stručné informácie

nbsp; Systém Windows &NT: vyžaduje verzia 3.1 alebo novšia.
Windows:Vyžaduje systém Windows 95 alebo novším.
Windows CE:Vyžaduje verziu 1.0 alebo novšiu verziu.
Hlavičky:Deklarovaný v súbore winuser.h.
Importovať knižnica:Použiť user32.lib.

Pozri tiež

Windows prehľad okno funkcie, MoveWindow, SetActiveWindow, SetForegroundWindow

Index