MFC - desen în fereastră

Astăzi vom analiza cum să desenezi diverse elemente folosind biblioteca MFC. Eu însumi studiez acest Liebu și nu știu prea mult. În MFC, se utilizează contextul dispozitivelor Windows, folosind-o, folosind funcțiile sale, vom desena diverse elemente.







Deci, să începem, să creați o aplicație MFC bazată pe mai multe documente, numai fără file, în aplicația Wizard, în fila "Application Type", setați setările ca în imaginea de mai jos și faceți clic pe Ready

Apoi compilați aplicația creată (Ctrl + F5) și ar trebui să aveți următorul program.

Modul în care MFC atrage într-o fereastră

În aplicația de proiectare mfc se numește funcția CView onDraw (), adică avem clasa CtestView moștenită din clasa Cview și funcția a fost redefinită în ea

Este virtual așa cum se vede și definiția sa are următoarea formă:

CDC * este un indicator al contextului dispozitivului Windows. device context - aceasta este o astfel de gunoi în windose care afișează la fel de opinii cu privire la orice dispozitiv, dacă este monitorul LCD sau imprimanta, imaginea va fi una și aceeași, imaginea pe care ar trebui să fie și așa unul și același lucru, atunci cel mai important lucru pe care codul pentru imprimanta nu are nevoie să-l rescrie va fi același, să spunem, atât pentru imprimante, cât și pentru monitoare, codul va fi același. Ei bine, în general, CDC * - un pointer la ustroysva CDI context - conținut divace instryment ca modul în care se află. Și CDC este ceea ce este ceea ce în Windows, la care există metode diferite.







Aici este creat un pointer pentru obiectul document care aparține vizualizării curente sau puteți spune că este legat de vizualizarea curentă. Funcția GetDocument () returnează un indicator pentru documentul curent pentru vizualizare.

Verifică validitatea indicatorului.

Ei bine, în general, îi adăugăm pe băieți în locul liniei

Și vom compila programul Ctrl + F5, să vedem ce avem. Și avem un program care funcționează în mod normal. Dar este adevărat că avem o fereastră - zona sa de ascundere este permisă pentru limitele celui mai important cadru, de exemplu ca în imaginea de mai jos

suntem atunci când ne este trăgând brațul este fereastra zonei ascunse ne windose ar trebui să redesenare acest domeniu și se ocupe de mesaje WM_PAINT în MFC în prelucrarea acestui mesaj este cauzat OnDraw () funcție este clasa de vedere, de bine acest lucru poate experimenta exemplu, atunci când veți pune o fereastră de în afara ferestrei, acesta va fi întotdeauna numit AfxMessageBox () funcție, de asemenea, numit de sine OnDraw () și a modifica dimensiunea tipul regiunii, dacă trageți mouse-ul peste marginea ferestrei încearcă să schimbe dimensiunea sa, prima fereastră și complet curățat, iar apoi funcția OnDraw () ar trebui să fie apelată, ca atare, să o redreseze. Ei bine, acestea sunt niște subtilități atât de mici pe care trebuie să le cunoașteți, așa că să analizăm modul în care toate aceleași trage în fereastră.

Moduri de desenare

Punctul de pornire din fereastra ferestrelor pornește din colțul din stânga sus, în mod implicit acesta este punctul cu coordonatele (0,0). Este ca și centrul avionului. În mod implicit, modul de afișare din fereastra ferestrei este setat la MM_TEXT - Unitatea logică este un pixel de dispozitiv cu poziții x direcții de la stânga la dreapta și pozitiv y din partea de sus în jos a zonei clientului.







Articole similare

Trimiteți-le prietenilor: