Programarea cu și

Visual C ++ .NET
Lecția 8. Desenați întreaga fereastră (clasa CWindowDC)

Zona Fereastra poate fi împărțită în două părți - prin spațiul interior al ferestrei (numită Client) și cadrul ferestrei (care include cadrul real, titlu, bara de stare, bara de meniu, etc.).







Cum să atragă o entitate în partea de client a ferestrei, am luat în considerare în lecția 5. Acum vom vedea cum puteți desena în jurul ferestrei.

Pentru a desena întreaga fereastră, se utilizează clasa CWindowDC. El este un descendent al clasei CDC. În constructorul său, această clasă numește funcția API CWindowDC, care returnează contextul dispozitivului pentru întreaga fereastră. În destructorul său, această clasă numește funcția API ReleaseDC.







Să desenăm un cerc în bara de titlu a ferestrei Despre programului nostru. Acest cerc va apărea când faceți clic pe buton. Adăugați acest buton în caseta de dialog Despre. În butonul de administrare a butoanelor, scrieți următorul cod:

Acum când faceți clic pe butonul din caseta de dialog Despre, în antet apare un cerc alb:

În exemplul de mai sus, trecem printr-un pointer la întreaga fereastră constructorului de clasă CWindowDC.

Pentru a vedea că în constructor există un apel la funcția API GetWindowDC, pune un breakpoint pe linie

și rulați programul pe F5. Când opriți pe această linie, apoi pentru a intra în constructor, apăsați F11. Veți găsi în codul următor din biblioteca MFC:

Vezi tu? Aici numim funcția API GetWindowDC. Apropo, un pic mai mic în cod arată că distrugătorul apelează funcția API ReleaseDC:

<<ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ







Articole similare

Trimiteți-le prietenilor: