AppWizard si biblioteca MFC
AppWizard este cea mai buna si cea mai eficienta unealta pentru crearea unei aplicatii MFC (Microsoft Foundation Classes).
Continut:
arhitectura generala a unei aplicatii;
tipuri de aplicatii create cu AppWizard;
optiunile oferite de AppWizard pentru o aplicatie;
configurarea caracteristicilor unei aplicatii.
1.1 Arhitectura generala a unei aplicatii
O aplicatie tipica MFC este constituita din trei straturi:
Nivelul primar
Acest nivel contine elementele care formeaza structura de baza (cadrul de lucru) a aplicatiei. In cele mai multe cazuri acest nivel este creat de AppWizard, pe baza unei serii de sase ferestre de dialog obtinandu-se un proiect ce implementeaza cele patru elemente de baza ale aplicatiei:
aplicatia (application):
derivat al clasei CWinApp;
acest obiect este primul creat cand se executa aplicatia si este responsabil de initializarea datelor si crearea celorlalte obiecte;
fereastra cadru (frame window):
derivat al clasei CFrameWnd sau CMDIFrameWnd;
aceasta fereastra cadru poate fi vazuta ca un container pentru celelalte elemente de interfata din aplicatie: ferestre, butoane, liste, ;
obiectul este responsabil de crearea documentului si a view-urilor;
documentul:
derivat al clasei CDocument;
contine datele aplicatiei;
responsabil de stocarea si incarcarea datelor pe/de pe disc, modificarea lor si furnizarea acestora catre ferestrele de vizualizare;
fereastra de vizualizare (view):
derivat al clasei CView;
implementeaza partea de interfata cu documentul aplicatiei;
responsabila de redarea unei reprezentari grafice a documentului precum si starea documentului sau aplicatiei.
Nivelul secundar
Include elemente aditionale pentru aplicatie cu care este in stransa interdependenta;
Aceste elemente pot fi implementate prin clase create cu ClassWizard sau adaugate din alte proiecte;
In cele mai multe cazuri acest nivel este implementat dupa ce a fost creat nivelul 1 si inainte de implementarea nivelului 3; insa nivelele 2 si 3 pot fi implementate si simultan.
Nivelul tertiar
Contine detaliile specifice aplicatiei;
1.2 Tipuri de aplicatii create cu AppWizard
AppWizard poate crea aplicatii bazate pe:
fereastra de dialog (dialog box - based application):
se implementeaza doar doua din cele patru clase de pe nivelul primar (CWinApp si CDialog care inlocuieste CFrameWnd, CDocument si CView);
SDI (Single Document Interface):
aplicatia foloseste doar o singura fereastra cadru care contine documentul si fereastra de vizualizare si realizeaza legatura dintre acestea;
MDI (Multiple Document Interface):
contine, fata de o aplicatie SDI, un obiect frame aditional, care gestioneaza perechea document-view;
intr-o astfel de aplicatie pot apare mai multe ferestre (child) deschise, fiecare continand interfete diferite pentru un singur document sau mai multe documente cu interfetele lor;
pentru un document cu mai multe interfete de vizualizare in aplicatie vor fi mai multe perechi CMDIChildWnd - CView;
pentru mai multe documente cu interfetele lor in aplicatie vor apare mai multe template-uri, fiecare template continand CDocument - CMDIChildWnd - CView.
1.3 Optiuni oferite de AppWizard pentru o aplicatie
optiuni OLE
container
CDocument COleDocument
suport pentru obiecte denumite clienti;
in nivelul secundar este adaugat un element denumit client si implementat prin COleClientItem;
miniserver (SDI);
CDocument COleServerDoc
include suport pentru server;
in nivelul secundar sunt adaugate: COleServerItem si COleIPFrameWnd;
fullserver
la fel ca in cazul precedent difera doar implementarea;
container/server
CDocument COleServer
in nivelul secundar sunt adaugate: COleClientItem, COleServerItem si COleIPFrameWnd;
optiuni pentru baze de date
CView CRecordView
in nivelul secundar este adaugat CRecordSet.
1.4 Configurarea caracteristicilor unei aplicatii
adaugarea unei bare de unelte si a unei bare de stare:
importul unei resurse bitmap ce reprezinta butoanele barei de unelte;
adaugarea variabilelor membru si a intrarilor in harta de mesaje:
adaugarea codului de initializare si de implementare;
adaugarea unei liste MRU (Most Recently Used);
adaugarea unui print preview;
adaugarea suportului MAPI si Windows Sockets;
transformarea unei aplicatii SDI in MDI:
crearea resurselor pentru fereastra child frame;
inlocuirea ferestrei cadru a aplicatiei;
adaugarea unei ferestre child;
modificarea codului de initializare a ferestrei cadru;
modificarea aplicatiei.
Este format din mai multe ferestre dedicate unor operatii specifice din procesul scrierii unei aplicatii:
Output - se afiseaza toate mesajele din timpul compilarii, testarii si pentru rezultatul unei cautari in fisiere;
Workspace:
ClassView - afiseaza ierarhia de clase a proiectului;
ResourceView - resursele (ferestre, meniuri, icoane, imagini, cursoare, tabelul cu mesaje) proiectului;
FileView - fisierele necesare proiectului;
InfoView - documentatii (help, exemple);
Standard - bara cu butoane standard (New, Open, Save, );
Build, Resource, InfoViewer, Edit, Debug, Browse, WizardBar - ferestre ce contin butoane utilizate in operatiile specificate.
1.6 Fisierele unei aplicatii Visual C
Se recomanda urmatorul tipar pentru un fisier header:
// Nume.h : Se specifica ce contine acest fisier
#if !defined _NUME_H_
#define _NUME_H_
// sectiunea de include-uri
// CNume:
date despre clasa
class CNume : CAltaClasa
#endif
Orice fisier .cpp trebuie sa includa header-ul stdafx.h; altfel apare eroare de compilare.
Aplicatia Exemplu1 bazata pe fereastra de dialog este continuta in urmatoarele fisiere:
Exemplu1.h si Exemplu1.cpp - contin declararea si implementarea clasei CExemplu1App;
Exemplu1Dlg.h si Exemplu1Dlg.cpp - contin declararea si implementarea ferestrei dialog a aplicatiei;
Resource.h - in acest fisier sunt definite toate constantele folosite in fisierul de resurse al aplicatiei;
Exemplu1.rc - fisierul de resurse.
ClassWizard (o unealta pentru crearea si gestionarea claselor) si AppWizard insereaza anumite comentarii speciale in sursele programului pentru a marca locurile in care ClassWizard poate scrie. Daca aceste comentarii se sterg atunci nu se mai poate folosi ClassWizard. Daca informatiile ce se adauga intr-un fisier sursa se doresc a fi vizibile si din ClassWizard atunci acestea trebuie plasate intre comentariile corespunzatoare tipului de informatie introdus. In declararea unei clase pot apare urmatoarele comentarii (o parte din ele):
AFX_DATA - declaratii de variabile intr-o clasa;
//}AFX_DATA
AFX_VIRTUAL - declararea metodelor virtuale;
AFX_MSG - delimiteaza harta de mesaje.
In surse mai apar si macro-uri, dintre care cele mai importante sunt:
DECLARE_MESSAGE_MAP( ) - Fiecare clasa derivata din CCmdTarget trebuie sa contina o harta de mesaje pe baza careia se mapeaza un mesaj pe o functie membru a clasei. Acest macro se plaseaza la sfarsitul definirii clasei.
BEGIN_MESSAGE_MAP( ), END_MESSAGE_MAP( ) - marcheaza inceputul, respectiv sfarsitul definitiilor mesajelor;
ON_COMMAND( ) - apare intr-o harta de mesaje si indica functia care va trata un anumit mesaj.
Asupra macro-urilor si comentariilor inserate de ClassWizard vom reveni ceva mai incolo.
Aplicatia SDI Exemplu2 contine fisierele:
Exemplu2.h si Exemplu2.cpp - contin declararea si implementarea clasei CExemplu2App;
MainFrm.h si MainFrm.cpp - contin clasa CMainFrame, fereastra cadru a aplicatiei;
Exemplu2Doc.h si Exemplu2Doc.cpp - clasa CExemplu2Doc, documentul aplicatiei;
Exemplu2View.h si Exemplu2View.cpp - clasa CExemplu2View, fereastra de vizualizare;
Resource.h - in acest fisier sunt definite toate constantele folosite in fisierul de resurse al aplicatiei;
Exemplu2.rc - fisierul de resurse.
Aplicatia MDI Exemplu3 contine fisierele:
In plus fata de fisierele prezentate in Exemplul 2 mai sunt prezente alte doua fisiere: ChildFrm.h si ChildFrm.cpp care contin clasa CChildFrame.
Politica de confidentialitate |
.com | Copyright ©
2024 - Toate drepturile rezervate. Toate documentele au caracter informativ cu scop educational. |
Personaje din literatura |
Baltagul – caracterizarea personajelor |
Caracterizare Alexandru Lapusneanul |
Caracterizarea lui Gavilescu |
Caracterizarea personajelor negative din basmul |
Tehnica si mecanica |
Cuplaje - definitii. notatii. exemple. repere istorice. |
Actionare macara |
Reprezentarea si cotarea filetelor |
Geografie |
Turismul pe terra |
Vulcanii Și mediul |
Padurile pe terra si industrializarea lemnului |
Termeni si conditii |
Contact |
Creeaza si tu |