Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Foi de proprietati in C

c



+ Font mai mare | - Font mai mic



Foi de proprietati

Foaia de proprietati ordoneaza optiunile in serii de pagini cu etichetele, fiecare pagina de proprietati continand un set de atribute corelate. Orice pagina din foaia de proprietati este la randul sau o caseta de dialog asociata cu clasa MFC CPropertyPage. Foaia de proprietati, care contine paginile de proprietati, este, la randul ei, un obiect al clasei CPropertySheet.



Pot fi create propriile foi de proprietati folosind editorul pentru casete de dialog din Visual C++. Pasii urmatori indica crearea resursei pagina de proprietati:

Selectati comanda Resource din meniul Insert din Visula C++ i executati dublu clic pe Dialog in caseta de dialog Insert Resource. Astfel se incepe crearea resursei pagina de proprietati.

Cand pe ecran apare noua caseta de dialog, apasati tasta Enter pentru a deschide foaia de proprietati Dialog Properties. In pagina General, inlocuiti elementul de identificare ID si atributul pentru Caption cu valorile corespunzatoare. Titlul introdus in campul Caption va aparea pe eticheta paginii de proprietati.

Figura 7.13: Pagina General contine caracteristicile casetei de dialog.

In foaia de proprietati Dialog Properties, executati clic pe eticheta Styles pentru a deschide pagina Styles. Selectati Child in caseta Style, Thin in caseta Border si dezactivati optiunea System Menu. Acestea sunt stilurile de fereastra cerute de o pagina de proprietati.

Figura 7.14: Pagina Style contine stilurile pentru caseta de dialog.

Eliminati butoanele OK si Cancel si adaugati, folosind editorul pentru casete de dialog, controalele necesare in pagina de proprietati.

In pagina de proprietati selectata, apasati Ctrl+W pentru a deschide Class Wizard. Pe ecran va aparea caseta de dialog Adding a Class. Executati clic pe OK pentru a crea o noua clasa. Pe ecran va aparea caseta de dialog New Class:

Figura 7.15: Adaugarea clasei pentru pagina de proprietati

Scrieti in caseta Name denumirea clasei de pagina de proprietati si selectati CPropertyPage in caseta Base Class. Executati clic pe OK pentru a crea clasa.

In pagina Add Member Variable din Class Wizard, pot fi create variabilele membru pentru controalele cu care trebuie sa comunice aplicatia.

Repetati pasii de la 1 la 7 pentru fiecare pagina de proprietati care vreti sa fie inclusa in foaia de proprietati.

Apelati ClassWizard si executati clic pe butonul Add Class. Selectati New din meniul derulant. Pe ecran va aparea caseta de dialog New Class.

Scrieti denumirea clasei foaie de proprietati in caseta Name si selectati CPropertySheet in caseta Base Class. Executati clic pe OK pentru a crea clasa, apoi inchideti ClassWizard executand clic pe butonul OK.

Dupa definirea resurselor foii de proprietati si dupa derivarea claselor paginii si foii de proprietati din CPropertyPage si CPropertySheet, se poate scrie codul sursa pentru afisarea si manipularea foii de proprietati.

Includerea fisierelor antet ale paginii de proprietati in fisierul antet al clasei foii de proprietati:

#include 'NumePrenume.h'

#include 'Varsta.h'

Apoi, clasa foii de proprietati avand acces la clasele paginilor de proprietati, trebuiesc create obiectele pagina de proprietati ca variabile membru ale clasei foaie de proprietati:

CNumePrenume m_NumePrenume;

CVarsta m_Varsta;

Figura 7.16: Adaugarea variabilelor membru de tip pagini de

proprietati in clasa foii de proprietati

Pentru a adauga paginile de proprietati la clasa foii de proprietati se apeleaza in constructorul foii functia AddPage() :

CPropertySheet1::CPropertySheet1(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)

:CPropertySheet(pszCaption, pParentWnd, iSelectPage)

Acestea sunt operatiile minime care trebuiesc efectuate pentru a incheia clasa foii de proprietati.

In continuare va trebui sa includeti clasa foii de proprietati in fisierul sursa care afiseaza foaia de proprietati (al clasei View).

#include "PropertySheet1.h"

Afisarea foii de proprietati presupune definirea obiectului foaie de proprietati si apelarea functiei membru DoModal( ) in cadrul functiei mesaj-raspuns :

void CP10View::OnPs1()

Argumentul constructorului este titlul ce trebuie sa apara pe bara de titlu a foii de proprietati.

Figura 7.17: Foaie de proprietati cu doua pagini de proprietati

Transferul de valori dintre program si foaia de proprietati functioneaza la fel ca in cazul casetelor de dialog. Pentru a introduce date in controalele foii de proprietati inaintea afisarii ei, trebuie initializate variabilele membru ale claselor paginilor de proprietati. In sens invers, se pot extrage informatii din paginile de proprietati copiind valorile variabilelor membru ale paginilor de proprietati in variabilele program (definite de exemplu in clasa View). Daca valoarea returnata de DoModal() este IDOK, se pot extrage datele din controalele foii cum s-a procedat la casetele de dialog.

7.4. Wizard-ul

Wizard-urile, foarte asemanatoare cu foile de proprietati, ghideaza utilizatorul pas cu pas pe parcursul efectuarii operatiilor complexe. Principala deosebire consta in faptul ca un Wizard foloseste butoane in locul etichetelor pentru a realiza trecerea la pagina urmatoare, iar utilizatorul trebuie sa parcurga paginile in ordine succesiva. Se poate construi un Wizard la fel cum s-a procedat in cazul paginilor de proprietati. Chiar se asociaza resursa caseta de dialog a unei pagini a Wizard-ului cu clasa CPropertyPage. Wizard-ul propriu zis este un obiect al clasei CPropertySheet.

Ceea ce face dintr-o foaie de proprietati un Wizard este apelarea functiei membru SetWizardMode() a obiectului foaie de proprietati:

void CP10View::OnW1()

O secventa de initializare pe care trebuie sa o execute un Wizard este cea de activare a butoanelor. O pagina din Wizard are trei butoane importante (cazuri speciale sunt prima si ultima pagina): Back, Next si Finish. Pentru a activa butoanele fiecarei pagini din Wizard se apeleaza functia SetWizardButtons() in cadrul functiei OnSetActive() (suprascrisa) a clasei CPropertyPage. Cand pagina Wizard-ului trebuie afisata MFC apeleaza OnSetActive().

BOOL CW1::OnSetActive()

Functia OnSetActive() defineste un pointer spre obiectul CPropertySheet care este parintele paginii Wizard. Apoi, se apeleaza functia SetWizardButtons prin intermediul pointerului. Prezentam in continuare constantele care pot fi folosite ca argument: PSWIZB_NEXT activeaza butonul Next, PSWIZB_BACK activeaza butonul Back, PSWIZB_FINISH activeaza butonul Finish, PSWIZ_DISABLEDFINISH dezactiveaza butonul Finish. Pentru a selecta butoanele care trebuie activate se folosesc constantele corespunzatoare separate prin semnul |.

Functiile, care pot fi suprascrise, pentru raspuns la actionarea butoanelor sunt: OnWizardBack(), OnWizardNext(), OnWizardFinish().

LRESULT CW2::OnWizardNext()

Figura 7.18: Efectul suprascrierii functiei OnWizardNext()

a paginii 2 a Wizard-ului



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 700
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved