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);
| 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.
| 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. |
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.
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.
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.
Windows prehľad okno funkcie, MoveWindow, SetActiveWindow, SetForegroundWindow