Crearea de cadru și copil Windows

După înregistrarea sa clase fereastra, o cerere de MDI poate crea sale windows. În primul rând, acesta creează fereastra sa cadru utilizând funcția CreateWindow sau CreateWindowEx . După crearea fereastra sa cadru, aplicarea creează sale fereastra client, din nou utilizând CreateWindow sau CreateWindowEx. Cererea trebuie să specifice MDICLIENT ca numele clasei a ferestrei client; MDICLIENT este o clasă de preregistered fereastra definite de sistem. Parametrul lpvParam CreateWindow sau CreateWindowEx ar trebui să punct la o structură CLIENTCREATESTRUCT . Această structură conține membrii descrise în tabelul următor:

Membre Descriere
hWindowMenu Ocupa în fereastra meniul utilizate pentru controlul MDI copil windows. Ca copil Ferestre sunt create, aplicarea adaugă lor titluri din meniul fereastră ca elementele de meniu. Utilizatorul poate activa apoi o fereastra copil făcând clic pe titlul acestuia din meniul fereastră.
idFirstChild Precizează identificatorul de fereastra copil MDI primul. Fereastra copil MDI primul creat este asociat acest identificator. Windows suplimentare sunt create cu fereastra crește identificatori. Când o fereastră de copil este distrus, sistemul reassigns imediat identificatori de fereastra pentru a păstra lor gamă contigue.

Când o fereastră de copil titlu se adaugă meniul fereastră , sistemul asociază un identificator la fereastra copil. Când utilizatorul face clic pe o fereastră de copil titlul, fereastra cadru primește un mesaj de WM_COMMAND cu identificatorul în parametrul wParam . Trebuie să specificați o valoare pentru membru idFirstChild care nu intră în conflict cu identificatori element de meniu în meniul fereastra de cadru.

Multipad lui cadru fereastra procedură creează ferestrei MDI client în timp ce mesajul WM_CREATE de prelucrare. Următorul exemplu arată cum se creează ferestrei client.

caz WM_CRE&ATE: {CLIENTCREATESTRUCT CSC; 
 
        / / Regăsi ghidajul pentru meniul fereastră și asociați / / primul copil fereastra identificator. 
 
        CCS.hWindowMenu = GetSubMenu(GetMenu(hwnd), WINDOWMENU); 
        CCS.idFirstChild = IDM_WINDOWCHILD; 
 
        / / Crearea fereastra client MDI. 
 
        hwndMDIClient = CreateWindow ("MDICLIENT", (LPCTSTR) NULL, WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL, 0, 0, 0, 0, hwnd, (HMENU) 0xCAC, hInst, (LPSTR) amp; CSC); 
 
        ShowWindow (hwndMDIClient, SW_SHOW); 
    } pauză 

 

Titluri de copil windows sunt adăugate în partea de jos a meniului fereastră . Dacă aplicarea adaugă siruri de caractere din meniul fereastră utilizând funcția AppendMenu , aceste siruri de caractere pot fi suprascrise de titluri de Ferestre copilului atunci când meniul fereastră este repictata (atunci când o fereastră de copil este creat sau distruse). O cerere de MDI, care adaugă siruri de caractere sale meniul fereastră trebuie să utilizați funcția InsertMenu ?i să verifice că titlurile de copil windows nu au suprascris aceste siruri de caractere noi.

Utilizați stilul de WS_CLIPCHILDREN pentru a crea ferestrei MDI client pentru a împiedica fereastra pictura peste windows său copil.

Index