Vytváranie rám a podriadené okná

Po zaregistrovaní jeho okno triedy MDI aplikácia môže vytvoriť jeho okien. Po prvé, vytvára jeho rám okna pomocou funkcie CreateWindow alebo CreateWindowEx . Po vytvorení jeho rám okna aplikácia vytvára jeho klient okno znova pomocou funkcie CreateWindow alebo CreateWindowEx. Žiadosti by mali zadať MDICLIENT ako názov triedy okna klienta; MDICLIENT je preregistered okno triedy definované v rámci systému. LpvParam parameter CreateWindow alebo CreateWindowEx má byť smerované na CLIENTCREATESTRUCT štruktúru. Táto štruktúra obsahuje členov popísané v nasledujúcej tabuľke:

Člen Popis
hWindowMenu Spracovať do okna menu používa na kontrolu MDI podriadené okná. Ako podriadené okná vytvoria, uplatňovanie pridá ich názvov do okna menu ako položky menu. Používateľ môže potom aktivovať dcérskym oknom kliknutím na jeho názov v ponuke okno.
idFirstChild Určuje identifikátor prvý MDI dcérskym oknom. Prvé dieťa okno MDI vytvorené priradí tento identifikátor. Dodatočné windows sú vytvorené pridajte inkrementací okno identifikátorov. Keď dieťa okno zničené, systému okamžite znova priradí okno identifikátory udržať ich rozsah súvislé.

Ak záhlavie okna dieťa sa pridá do okna menu, systém priradí identifikátor dcérskym oknom. Keď používateľ klikne na tlačidlo názov dieťa okna, rám okna dostane WM_COMMAND správu s identifikátorom v parametri wParam . Mali by ste zadať hodnotu pre idFirstChild člen, ktorý nie je v rozpore s identifikátormi položka ponuky v ponuke okno rám.

Multipad na rám okna postup vytvára okna MDI client počas spracovania WM_CREATE správy. Nasledujúci príklad ukazuje, ako je vytvorený okna klienta.

prípad WM_CRE&ATE: {CLIENTCREATESTRUCT ccs; 
 
        / / Získať popisovač do okna menu a priradiť / / prvé dieťa okno identifikátor. 
 
        CCS.hWindowMenu = GetSubMenu(GetMenu(hwnd), WINDOWMENU); 
        CCS.idFirstChild = IDM_WINDOWCHILD; 
 
        / / Create okna client MDI. 
 
        hwndMDIClient = CreateWindow ("MDICLIENT", (LPCTSTR) hodnotu NULL, WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL, 0, 0, 0, 0, hwnd, (HMENU) 0xCAC, hInst, (ukončený nulou LPSTR) amp; ccs); 
 
        ShowWindow (hwndMDIClient, SW_SHOW); 
    } prestávka 
 

Tituly podriadené okná sa dopĺňajú do spodnej časti ponuky okno . Ak uplatňovanie pridá reťazcov do okna menu pomocou funkcie AppendMenu , tieto struny môžu byť prepísané hlavami podriadené okná pri ponuke okno překreslený (vždy, keď sa dieťa okno je vytvorená alebo zničená). MDI aplikácia, ktorá pridá reťazce jeho ponuke okno by mali použiť funkciu InsertMenu a overovať titulov podriadené okná sa neprepíšu tieto nové struny.

WS_CLIPCHILDREN štýl použiť na vytvorenie okna MDI client zabrániť okna maľovanie nad jej podriadené okná.

Index