Lucrare Programare Windows In Visual C++ Cu Mfc

  • Nota 10.00
  • 0 comentarii
  • Publicat pe 07 August 2021

Descriere Lucrare

EXTRAS DIN DOCUMENT

    I.1. Evoluţia MFC
    Una din bibliotecile de clase cel mai des utilizate de către programatori este Microsoft Fundation Classes (MFC). Aceasta însoţeşte multe din compilatoarele C++ pentru Windows, printre care Visual C++, Symantec C++, Watcom C++. De asemenea, există variante pentru sistemul de operare System 7.5 de pe Macintosh şi pentru diferite versiuni de Unix. Istoria acestei biblioteci este prezentată pe scurt în cele ce urmează. 

    I.1.1. Crearea MFC
    În 1991, Microsoft formează o echipă numită AFX (Application FrameworX), însărcinată cu crearea unei biblioteci de clase (de tip framework) C++ care să fie livrată împreună cu compilatoarele Microsoft. Unul dintre scopurile acestei biblioteci este crearea unui mediu de lucru care să permită realizarea mai uşoară a aplicaţiilor Windows folosind reutilizarea componentelor. Grupul iniţial AFX a proiectat o bibliotecă de clase care făcea trecerea de la Windows API la o arhitectură preluată de la Macintosh (toolbox) şi a încercat să scrie aplicaţii cu prototipul construit. Au ajuns la concluzia că nu se poate trece peste cunoştinţele de programare Windows. Astfel, apărea necesitatea ca programatorii care foloseau această bibliotecă să fie familiarizaţi cu Windows API. 
    MFC 1.0 : Naşterea MFC 
    În martie 1992, apare MFC 1.0 pentru Windows 3.1 împreună cu Microsoft C/C++ 7.0. Această bibliotecă reprezintă o abstractizare pentru Windows API, încapsulând obiectele Windows mai des utilizate în clase C++. MFC 1.0 introduce CObject ca şi clasă de bază pentru MFC (asemănătoare lui Object din Smalltalk). CObject oferă posibilitatea determinării tipului (CRuntimeClass), serializării (CArchive) şi depanării. De asemenea, există şi o serie de clase de interes general. 
Dintre acestea amintim : 
- clase pentru colecţii, liste, tablouri; 
- o clasă pentru manipularea şirurilor de caractere (CString);
- clase pentru gestiunea timpului (CTime, CTimeSpan, CDate);
- clase pentru acces la fişiere. 
    O aplicaţie construită folosind MFC 1.0 permite în principiu lucrul 
cu mai multe ferestre (MDI) precum şi suport pentru OLE 1.0. MFC 1.0 nu a avut însă un succes deosebit datorită faptului că nu era prea uşor de folosit. 
MFC 2.x : Adolescenţa 
    În februarie 1993, apare MFC 2.0, tot pe 16 biţi, împreună cu Visual C++ 1.0. Se introduce o familie de clase care permit realizarea aplicaţiilor cu o arhitectură vedere-document (document-view), preluată după arhitectura MVC (Model - View - Controler) din Smalltalk. Această bibliotecă conţine, printre altele, clase pentru cutii de dialog cu o largă utilizare (common dialogs), statusbar (linie de stare) şi toolbar. Această versiune a MFC a devenit mult mai populară decât versiunea 1.0, deoarece aici se simplifică cu adevărat multe dintre aspectele programării Windows (exemple: tipărirea la imprimantă, vizualizarea documentelor pregătite pentru a fi tipărite - "print preview", utilizarea liniei de stare şi a barei de unelte - toolbar). Înaintea apariţiei MFC 2.0, folosind Windows API, realizarea acestor funcţionalităţi necesita cel puţin câteva săptămâni de muncă susţinută. 
    Dar să vedem ce alte caracteristici au fost introduse în MFC 2.0 : 
- implementare completă a opţiunilor de meniu File Open, Save, Save As şi păstrarea automată a listei cu fişierele cel mai recent folosite; 
- ferestre cu posibilităţi de defilare (scroll); 
- acces la controale VBX; 
- help sensitiv dependent de context; 
- procesarea automată a datelor introduse într-o cutie de dialog; 
- o interfaţă îmbogăţită ce permite facilităţi OLE (Object Linking and Embedding) versiunea 1.0; 
- suport pentru DLL (Dynamic Link Library); 

    Ce a urmat? Microsoft rescrie rapid biblioteca MFC pentru Windows NT lansând-o în august 1993. O critică adusă acestei versiuni pe 32 de biţi este faptul că nu oferă posibilităţi multi-thread (adică nu oferă facilităţi pentru realizarea aplicaţiilor cu mai multe fire de execuţie în paralel). În decembrie 1993, Microsoft lansează MFC 2.5 versiunea care integrează noile tehnologii OLE (2.0) şi ODBC (Open DataBase Connectivity). Din cauză că nu există suport OLE în Windows NT 3.1, nu se distribuie o versiune pe 32 biţi care să integreze aceste tehnologii (abia Windows NT 3.5 va oferi prima implementare pe 32 de biţi a lui OLE). 
    MFC 3.x : Maturitatea
    În versiunea 3.0, lansată în septembrie 1994, MFC face trecerea de la lumea pe 16 biţi la cea pe 32 de biţi. MFC 3.0 include versiunile pe 32 de biţi ale claselor introduse în MFC 2.5, folosite pentru implementarea tehnologiilor OLE şi ODBC. 
    În completarea primelor versiuni MFC, versiunea 3.0 mai aduce şi alte îmbunătăţiri. Acestea ar fi : 
- înlăturarea restricţiilor de memorie pentru colecţii - la versiunile anterioare de MFC sub Windows 3.1, dimensiunea vectorilor (CObArray, CStringArray, şi altele) era limitată la 64KB pentru modele de memorie small şi medium, iar numărul de elemente al vectorilor era limitat la 32.768; acum pentru Windows NT, dimensiunea vectorilor este condiţionată numai de memoria disponibilă; 
- dialoguri multi-panou ("tabbed dialogs"; un exemplu de astfel de dialog este cutia de dialog care se deschide la selectarea opţiunii de meniu Tools/Options din Microsoft Word 6.0); 
- clase colecţie bazate pe template (generice); 
- facilităţi pentru realizarea aplicaţiilor multi-thread; 
- toolbar-uri cu formă şi poziţie variabilă; 
- extinderea clasei CTime pentru a permite gestiunea timpului sistemului şi a atributelor temporale ale fişierelor. 
    MFC 3.1 a apărut în ianuarie 1995. Ca noutate el introduce facilităţi pentru lucrul cu Mail API (MAPI), un set de clase WinSock (socket asemănător BSD) şi o versiune beta a claselor pentru controalele din Windows 95 ("common controls"). 
    MFC 3.2 apare în iulie 1995; el îmbunătăţeşte clasele pentru controalele din Windows 95 şi corectează anumite erori existente în versiunea beta (MFC 3.1). 
    MFC 4.x, 5.0, 6 : Următoarea generaţie
    Microsoft a lansat MFC 4.0 (septembrie 1995). Avantajul major al MFC 4.0 este faptul că permite exploatarea eficientă a sistemului de operare Windows 95. Înainte de MFC 4.0, toolbar-ul, statusbar-ul şi altele erau implementate intern prin MFC.     Microsoft doreşte ca toate aplicaţiile (inclusiv cele care nu folosesc MFC) să fie capabile să folosească aceste componente, astfel că ele vor fi implementate în sistemul de operare sub formă de controale. Atât Windows 95 cât şi Windows NT 3.51 includ acest nou set de controale numite "Windows common controls". Ca urmare, în MFC 4.0 au fost introduse clase care abstractizează această bibliotecă de controale a sistemului de operare. În cazul în care în MFC 4.0 există clase implementate anterior, cum ar fi CToolBar (în MFC 3.x), acestea sunt redenumite - de exemplu COldToolBar - iar CToolBar este noua clasă care foloseşte biblioteca de controale (common controls). Astfel, integrarea de noi controale în interiorul aplicaţiilor va cere un efort minim. 
Iată şi câteva clase din MFC 4.0 care folosesc controale din biblioteca sistemului de operare : 
- CAnimateCtrl furnizează funcţionalităţi de bază pentru animaţie; 
- CCheckListBox o listă ce conţine elemente ce pot fi selectate; 
- CDragListBox o listă în care ordinul unui element poate fi schimbat folosind mouse-ul; 
- CHeaderCtrl folosită pentru setarea caracteristicilor unei pagini; 
- CHotKeyCtrl oferă utilizatorului posibilitate apăsării unei secvenţe de taste pentru a realiza o acţiune; 
- CImageList înmagazinează o listă de imagini pentru afişarea într-o listă sau într-o animaţie; 
- CListCtrl o listă de imagini; 
- CRichEditCtrl un control pentru text care suportă diferite stiluri şi formate; 
- CSpinControlCtrl săgeţi pentru incrementarea şi decrementarea unei valori; 
- CStatusBarCtrl înlocuieşte CStatusBar; 
- CTabCtrl pentr dialoguri cu mai multe panouri, înlocuind CPropertySheet; 
- CTreeCtrl realizează un arbore expandabil; 
- CToolBarCtrl toolbar, înlocuind CToolBar; 
- CToolTipCtrl dă utilizatorului informaţii rapide despre interfaţa utilizator. 
    Pentru Windows 95 : 
- CFileDialog pentru deschiderea şi salvarea fişierelor; 
- CPageSetup pentru setarea paginii pentru tipărire;
- COleObjectProperties pentru schimbarea proprietăţilor obiectelor OLE.
     Aplicaţiile pentru Windows 95 care folosesc MFC 4.0 sunt mai 
bine integrate în sistemul de operare, permiţând automat : 
- “drag-and-drop printing” : mutarea icon-ului unui document peste icon-ul imprimantei are ca efect lansarea automată a aplicaţiei în background pentru tipărirea documentului la imprimantă; 
- meniuri contextuale : la apăsarea butonului drept al mouse-ului peste diferite obiecte ale aplicaţiei va fi afişat un meniu care descrie comportamentul obiectelor afişate; 
- TCARD : instrument prin care utilizatorul poate primi sugestii privind aplicaţia. MFC 4.0 oferă posibilitatea ataşării     TCARD la diferite componente ale aplicaţiei. Totodată există noi clase Win32 pentru programarea multi-thread ca : CSyncObject, CSemaphore, CCriticalSection, CMutex, CEvent, CSingleLock, CMultiLock. Altă caracteristică importantă a MFC 4.0 este suportul pentru controale OLE. Numele original al acestora este OCX, şi sunt succesorii pe 32 biţi al controalelor VisualBasic, VBX. Suportul pentru controale OLE este integrat în clasa CWnd, astfel că se pot crea controale OLE în dialoguri, view-uri, şi alte clase derivate din CWnd. 
Microsoft a lansat la începutul anului 1996 o extensie a bibliotecii MFC 4.0 (4.1) care are în plus unele caracteristici Windows 95 şi îmbunătăţeşte suportul pentru controalele OLE. 
    În anul 1997 Microsoft a lansat MFC 5.0 care este o îmbunătăţire a versiunilor anterioare.
Apoi a apărut versiunea MFC  6, care aduce noi îmbunătăţiri.
MFC : Viitorul 
Ce ne poate oferi viitorul, cu aşa un trecut, doar cei de la Microsoft pot să pronosticheze.
I.1.2. Istoria versiunilor MFC 
Framework este o colecţie integrată de compomente software orientate obiect care oferă tot ce este nevoie pentru realizarea unei aplicaţii generice; 
Arhitectura MVC este o arhitectură apărută în mediul academic în 1980, odată cu Smalltalk, şi preluată de Apple Computer în 1985 pentru MacApp; 
Arhitectura vedere-document este o arhitectură pe care se bazează în general aplicaţiile construite folosind MFC, ea având ca scop separarea datelor de interfaţa utilizator; 
COM - Common Object Model: protocol de comunicaţie Windows orientat obiect, care furnizează : 
- o standardizare a modului în care un EXE poate controla un alt 
EXE (înlocuind DDE); 
- un mod standard prin care un client EXE poate apela un DLL ca şi server; 
- înlocuieşte controalele VBX cu OCX; OLE - Object Linking and Embedding: un superset al COM, care permite, printre altele, editare vizuală şi drag-and-drop. ODBC - Microsoft Open DataBase Conectivity: standard care constă dintr-o mulţime extensibilă de DLL-uri care furnizează o interfaţă standard pentru programatorii care doresc să folosească anumite tipuri de formate pentru baze de date. ODBC este bazat pe o versiune standardizată a SQL (Structured Query Language); VBX - Visual Basic Control : tip special de DLL, pe 16 biţi; OCX - control OLE, pe 32 biţi; DLL - Dynamic Link Library : module care pot fi încărcate şi legate în timpul execuţiei. 

CUPRINS

STRUCTURA LUCRĂRII 1
Partea I : NOŢIUNI FUNDAMENTALE DESPRE MFC 3
I.1. Evoluţia MFC 3
I.1.1. Crearea MFC 4
I.1.2. Istoria versiunilor MFC 7
I.2. Biblioteca Microsoft Foundation Class 9
I.2.1. Prezentarea claselor MFC 9
I.2.1.1. O privire generală asupra claselor MFC 9
I.2.1.2. Cum arată MFC 10
I.2.2. Cele mai importante clase MFC 12
Partea a II –a : PREZENTARE VISUAL C++ 15
II.1. Introducere în Visual C++ 15
II.2. Instrumente de bază din Visual C++ 15
II.2.1. AppWizard 15
II.2.2. ClassWizard 16
II.2.3. Editoare de resurse 16
II.2.4. Compilatorul 16
II.2.5. Depanatorul 16
II.2.6. Fereastra Project Workspace 17
II.3. Elemente uzuale Windows 19
II.3.1. Principalele elemente ale interfeţei Windows 19
II.3.1.1. Fereastra 19
II.3.1.2. Casetele de dialog 20
II.3.1.3. Casetele de mesaje 21
II.3.1.4. Foile de proprietăţi 21
II.3.1.5. Utilitare de asistenţă interactivă (Wizards) 21
II.3.1.6. Controale standard 22
II.3.1.7. Elemente comune ale interfeţei cu utilizatorul 23
II.3.1.8. Fişiere de resurse 25
Partea a III –a : REALIZAREA ŞI PREZENTAREA APLICAŢIEI “AGENDA” 27
III.1. Realizarea aplicaţiei "Agenda" 27
III.1.1. Crearea structurii aplicaţiei "Agenda" 28
III.1.2. Construirea aplicaţiei "Agenda" 37
III.1.2.1. Modelarea interfeţei aplicaţiei "Agenda" 38
III.1.2.2. Adăugarea de controale în dialog, tratarea mesajelor acestora şi adăugarea de membrii 39
III.1.2.3. Editorul de icoane 61
III.1.2.4. Inserarea bitmap-urilor în dialoguri 62
III.2. Prezentarea aplicaţiei "Agenda" 66
BIBLIOGRAFIE 70
Descarca lucrare
  • Specificatii Lucrare Programare Windows In Visual C++ Cu Mfc :