Vytvoriť MDI dcérskym oknom žiadosť môžete volať funkciu CreateMDIWindow alebo poslať správu WM_MDICREATE do okna klienta MDI. (Uplatňovanie použiť funkciu CreateWindowEx štýlom WS_EX_MDICHILD vytvoriť MDI dieťa windows.) Singel-závitové MDI žiadosť buď metódu môžete použiť na vytvorenie dcérskym oknom. Vlákno aplikácii viacvláknové MDI musia použiť funkciu CreateMDIWindow alebo CreateWindowEx na vytvorenie dcérskym oknom v oddelenom vlákne.
LParam parameter správu WM_MDICREATE je ďaleko smerník na štruktúru MDICREATESTRUCT . Štruktúra obsahuje štyri členov dimenzií: x a y, ktoré označujú horizontálne a vertikálne polohy okna a cx a cy, indikujúce vodorovné a zvislé ukladacích priestorov v okne. Ktoréhokoľvek z týchto členov môže byť pridelené výslovne uplatnením alebo môže byť nastavené na CW_USEDEFAULT, v ktorom prípade systém vyberie pozíciu, veľkosť alebo oboje podľa kaskádových algoritmus. V každom prípade musí byť inicializovaná všetkých štyroch členov. Multipad používa CW_USEDEFAULT pre všetky rozmery.
Posledný člen MDICREATESTRUCT štruktúra je členského štátu štýl , ktorý môže obsahovať štýl bitov pre dané okno. Vytvoriť MDI dcérskym oknom, ktoré môžu mať akúkoľvek kombináciu okna štýly zadať štýl okna MDIS_ALLCHILDSTYLES. Keď tento štýl nie je zadaný, dcérskym oknom MDI má štýly WS_MINIMIZE, WS_MAXIMIZE, WS_HSCROLL a WS_VSCROLL ako predvolené nastavenia.
Multipad vytvára jej prvého dieťaťa MDI windows pomocou jeho lokálne definovanú AddFile funkcie (nachádza v zdrojovom súbore MPFILE.C). AddFile funkcia nastaví názov okna dieťa priradením szTitle členom v okne MDICREATESTRUCT štruktúra buď názov súboru edituje alebo "Untitled." Členské szClass nastavená na názov MDI dieťa okno triedy registrované v Multipad je InitializeApplication funkciu. Členské hOwner nastavená na popisovač inštancie aplikácie.
Nasledujúci príklad zobrazuje funkcie AddFile v Multipad.
HWND &APIENTRY AddFile(pName) Znak-* pName;
{HWND hwnd;
CHAR sz [160];
MDICREATESTRUCT mcs;
Ak (! pName) {/ / Ak pName parameter hodnotu NULL, načítať "Untitled" / / string zo zdroja STRINGTABLE a nastaviť szTitle / / členských MDICREATESTRUCT.
LoadString (hInst, IDS_UNTITLED, sz, sizeof(sz));
MCS.szTitle = sz (LPCTSTR);
} iný / / názov okna úplnú cestu a názov súboru, / / získali volaním funkcie súbor s / / OF_PARSE vlajku, ktorá je vyvolaná pred AddFile().
MCS.szTitle = of.szPathName;
MCS.szClass = szChild;
MCS.hOwner = hInst;
/ / Použiť predvolenú veľkosť okna dieťaťa.
MCS.x = mcs.cx = CW_USEDEFAULT;
MCS.y = mcs.cy = CW_USEDEFAULT;
/ / Uveďte dcérskym oknom predvolený štýl. StyleDefault / / premenná je definovaná v MULTIPAD.C. mcs.style = styleDefault;
/ / Povedať MDI klientskeho okna pre vytvorenie dcérskym oknom.
hwnd = SendMessage (HWND) (hwndMDIClient, WM_MDICREATE, 0, (dlhé) (LPMDICREATESTRUCT) amp, mcs);
/ / Ak sa nájsť súbor prečítať jeho obsah do dieťaťa / / oblasti okna klienta.
Ak (pName) {if (!LoadFile (hwnd, pName)) {/ / nemôže načítať súbor, zatvorte okno.
SendMessage (hwndMDIClient, WM_MDIDESTROY, hwnd (DWORD), 0 L);
}} návrat hwnd;
}
Ukazovateľ zložil v parametri lParam WM_MDICREATE správy prechádza do funkcie CreateWindow a zobrazí ako prvý člen štruktúry CREATESTRUCT zložil v WM_CREATE správe. V Multipad, dcérskym oknom sama inicializuje počas WM_CREATE správu spracovania inicializuje premenných dokumentu v jeho dodatočných údajov a vytvorením upraviť kontrolu dcérskym oknom.