Creeaza.com - informatii profesionale despre


Simplitatea lucrurilor complicate - Referate profesionale unice
Acasa » scoala » informatica
AppWizard si biblioteca MFC

AppWizard si biblioteca MFC


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.

1.5 Mediul de dezvoltare Microsoft Developer Studio

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


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.