A: O fereastra child (copil) este o fereastra care are setat stilul WS_CHILD si are urmatoarele proprietati:
- are o fereastra parent (parinte);
- sta intotdeauna in zona client a ferestrei parinte (nu poate fi afistata in afara);
- daca fereastra parinte este mutata, fereastra copil este mutata in acelas fel (pozitia ei relativa la zona client a parintelui nu se schimba);
- este distrusa atunci cand se distruge fereastra parinte.
- pentru a crea o fereasta child, trebuie setat stilul WS_CHILD si pasat un handle la parinte in apelul functiei CreateWindow sau CreateWindowEx;
ExempluCode: Select all
// create a child window HWND hWndChild = CreateWindow(_T("BUTTON"), _T("Push"), WS_VISIBLE|WS_BORDER|WS_CHILD, // WS_CHILD style is set 5, 6, 80, 30, hWndParent, // parent window handle (HMENU)1999, hInstance, NULL);
- De obicei, pozitia unei ferestre copil este relativa la zona client a parintelui;
in exemplul anterior 5 si 6 sunt coordonatele x si y relative la coltul stanga-sus a zonei client a ferestrei parinte;.
Alte exempleCode: Select all
// moves a child window MoveWindow(hWndChild, 98, 99, // coordinates relative to parent client area 80, 30, TRUE);
Code: Select all
// moves a child window SetWindowPos(hWndChild, NULL, 98, 99, // coordinates relative to parent client area 0, 0, SWP_NOSIZE|SWP_NOZORDER);
- frame-urile MDI child sunt tot ferestre copil si au setat in plus stilul extins WS_EX_MDICHILD;
- WS_CHILDWINDOW si WS_CHILD sunt sinonime;
- in general, controalele (butoane, edit-uri etc) sunt ferestre copil;
- o fereastra child nu poate avea menu;
- toate ferestrele care nu au setat stilul WS_CHILD (deci nu sunt child) sunt ferestre top-level;
- nu confundati child cu ownedl; chiar daca o fereastra owned are un parent (mai binezis un owner), ea nu are setat stilul WS_CHILD.
<< Back to Windows API Index