Sunteți pe pagina 1din 12

CE ESTE O FEREASTRĂ DESCENDENTĂ?

• O fereastră care se deschide în interiorul unei ferestre părinte este o fereastră


descendentă. Acțiunea întreprinsă în fereastra părinte se reflectă și asupra
fereastrei dscendente.
• Fereastra descendent procesează mesajele mouse-ului și tastaturutii și
notifică fereastra părinte când starea ferestrei descendent sa schimbat. În
acest fel, fereastra descendent devine un dispozitiv de intrare de nivel înalt
pentru fereastra părinte.
UTILITATEA FERESTRELOR DESCENDENT

• pentru a face față unei sarcini specifice, de exemplu, introducerea datelor de


la utilizator
• instrument de programare pentru a împărți o zonă mare a ecranului în porțiuni
mai mici, fiecare cu funcția sa de procesare a mesajelor.
CREAREA FERESTRELOR DESCENDENT

• Înregistrați o nouă fereastră de clasă pentru fereastra descendent


(RegisterClass ()).
• •Creați fereastra Child folosind CreateWindow () cu WS_CHILD style.
• Scrieți o funcție separată de procesare a mesajelor pentru fereastra
descendenta.
EXEMPLU DE CREARE A UNEI FERESTRE
DESCENDENT
CLASA BUTON
Coduri de notificare buton când Mesaje buton când părintele
copilul comunică cu părintele comunică cu copilul
BUTON PUSH

• Comenzile cu buton push sunt utilizate mai ales pentru a declanșa o acțiune
imediată, fără a reține niciun tip deindicație de on / off.
Butonul e restabilit la
Butonul e starea inițială și fereatra
redesenat copil trimite părintelui
Butonul e Butonul
folosind mesaj
apăsat e eliberat
umbrire WM_COMMAND cu
stil 3D notificarea
BN_CLICKED
CULORI
GetSisColor and SetSisColor Registry Key or WIN.INI Default RGB Value
Identifer
COLOR_SCROLLBAR Scrollbar C0−C0−C0
COLOR_BACKGROUND Background 00-80-80
COLOR_ACTIVECAPTION Active Title 00-00-80
COLOR_INACTIVECAPTION Inactive Title 80-80-80
COLOR_MENU Menu C0−C0−C0
COLOR_WINDOW Window FF-FF-FF
COLOR_WINDOWFRAME Window Frame 00-00-00
COLOR_MENUTEXT Menu Text C0−C0−C0
COLOR_WINDOWTEXT WindowText 00-00-00
COLOR_CAPTIONTEXT Title Text FF-FF-FF
COLOR_ACTIVEBORDER Active Border C0−C0−C0
CHECK BOX

• Această boxă se utilizează pentru a selecta anumite opțiuni.


• SendMessage ((HWND) lParam, BM_SETCHECK, (WPARAM)!SendMessage ((HWND) lParam,
BM_GETCHECK, 0, 0), 0) ;

• SendMessage (hwndButton, BM_SETCHECK, 1, 0) ;

• iCheck = (int) SendMessage (hwndButton, BM_GETCHECK, 0, 0) ;


Ferestrele descendent statice nu accepta inputuri
de la mouse sau tastatură și ele nu trimit mesaje
WM_COMMAND înapoi la fereastra părinte.

Când mutați sau faceți clic cu mouse-ul peste o


fereastră copil static, fereastra copil captează
CLASA mesajul WM_NCHITTEST și returnează o
valoare HTTRANSPARENT la Windows.
STATIC
Windows trimite celași mesaj WM_NCHITTEST
către fereastra de bază, fereastra părinte.

Părintele trimite mesajul către DefWindowProc,


unde este convertit în mesajul mouse-ului din
zona clientului.
BARA DE DERULARE

• Nu trimit mesaje WM_COMMAND ferestrei părinte, dar trimit mesaje


WM_VSCROLL și WM_HSCROLL;
• Există 2 stiluri pentru bare SBS_VERT și SBS_HORZ;
• GetSystemMetrics (SM_CYHSCROLL) sau SM_CXVSCROLL pentru verticală;

• SetScrollRange (hwndScroll, SB_CTL, iMin, iMax, bRedraw) ;


LIST BOX

• O listă este o colecție de șiruri de text afișate ca o listă coloană derulabilă


într-un dreptunghi. Un program poate adăuga sau elimina șirurile din listă
trimițând mesaje la procedura de fereastră a casetei de listă. Controlul casetei
de listă trimite mesaje WM_COMMAND la fereastra părinte când este
selectat un element din listă. Parintele fereastra poate determina apoi ce
element a fost selectat.
TIPURI DE LISTE

• O casetă de listă poate fi fie selecție unică, fie selecție multiplă. Acesta din
urmă permite utilizatorului să selecteze mai multe mai mult de un articol din
caseta de listă.

S-ar putea să vă placă și