Acasă | Despre noi | feedback-ul
Procedura pentru crearea unei casete de dialog fără moduri diferă oarecum de procedura de creare a unei casete de dialog modale. Ca și în dialogul modal, trebuie mai întâi să creați un șablon de casetă de dialog și să îl adăugați în fișierul de resurse al aplicației.
Apoi, trebuie să creați o clasă care să gestioneze caseta de dialog, clasa casetei de dialog. Această clasă este moștenită direct din clasa de bază CDialog. Pentru a crea o casetă de dialog fără moduri, trebuie să declarați un obiect de clasă pentru caseta de dialog. În exemplu, clasa dialogului fără moduri este definită ca o variabilă a clasei nodialog CMainFrame (a se vedea fișierul MainFrm.h):
clasa CMainFrame. public CFrameWnd
protejate: // creați numai de la serializare
// Suprascrierea funcțiilor virtuale generate de ClassWizard
virtual BOOL PreCreateWindow (CREATESTRUCT cs);
virtual void AssertValid () const;
virtual void Dump (CDumpContext dc) const;
// Funcțiile hărților generate de mesaje
afx_msg void OnModal ();
afx_msg void OnNomodal ();
afx_msg void OnNoshowdialog ();
Pentru a inițializa caseta de dialog fără moduri, trebuie să apelați metoda de creare a clasei CDialog.
Metoda de creare poate fi apelată direct din constructorul de clasă al panoului de dialog sau după crearea obiectului. Dacă este chemat Creator din proiectantul de clasă din caseta de dialog, trebuie să definiți constructorul, declarându-l public. În exemplu, metoda de creare este apelată în constructorul clasei CMainFrame:
Două prototipuri ale metodei Creare sunt definite în clasa CDialog. Unul vă permite să specificați o casetă de dialog prin numele său de text, iar cealaltă printr-un identificator numeric.
Crearea BOOL (LPCTSTR lpszTemplateName, CWnd * pParentWnd = NULL);
Creați BOOL (UINT nIDTemplate, CWnd * pParentWnd = NULL);
Parametrul lpszTemplateName conține un indicator pentru șir cu numele șablonului, parametrul nIDTemplate specifică numărul identificatorului de resurse. Parametrul pParentWnd îndreaptă spre fereastra părinte din care face parte dialogul. Dacă pParentWnd este NULL, atunci proprietarul este fereastra principală a aplicației.
Metoda Creare returnează o valoare diferită de zero în cazul în care crearea casetei de dialog a reușit și zero altfel.
Dacă caseta de dialog are stilul WS_VISIBLE, acesta apare imediat pe ecran. În caz contrar, trebuie să apelați metoda ShowWindow, și să se retragă panoul cu ecranul, puteți apela metoda DestroyWindow (această metodă este definită în clasa CWnd, și poate fi numită o clasă panou de obiecte interactive) pentru a afișa. În exemplu, aceste acțiuni sunt executate în comenzile de comandă din meniu:
Pentru a șterge un obiect casetă de dialog nemodificat, puteți să înlocuiți metoda virtuală PostNcDestroy (această metodă a fost definită inițial în clasa de bază CWnd). În acesta, puteți apela operatorul de ștergere, dându-i un pointer acestui obiect ca parametru. Trebuie să ștergeți acele obiecte care au fost create cu noul operator (în exemplul în care această acțiune nu poate fi efectuată, apropo, de ce?).
În exemplul (fișierul dlg2.zip) meniul este extins prin adăugarea a două elemente - "Dialogul nemodal" și "Eliminați dialogul modal", au fost adăugate manualele corespunzătoare pentru eveniment.
Unele funcții pentru lucrul cu casetele de dialog.
CWnd * CWnd :: GetDlgItem (int nID) const;
void CWnd :: GetDlgItem (int nID, HWND * phWnd) const;
void CDialog :: GotoDlgCtrl (CWnd * pWndCtrl);
Mută focusul la un alt element din dialog.
void CDialog :: NextDlgCtrl () const;
void CDialog :: PrevDlgCtrl () const;
Pentru a afla ce buton acționează "implicit" și, de asemenea, pentru ao schimba programabil, puteți utiliza următoarele funcții:
void CDialog :: SetDefID (UID nID);
Funcția GetDefID returnează identificatorul implicit al butonului în cuvântul inferior. Cel mai mare cuvânt conține valoarea DC_HASDEFID.
Modal a crea o aplicație care afișează fereastra principală care conține un meniu cu „Dialog“, „Despre“ și „Exit“. Dacă selectați „Dialog“ apare caseta de dialog modal, care vă permite să afișați diverse elemente pentru Windows (butoane cu text și imagini, elemente statice (text și pictograme), edita articole, liste și butoane -Check- acest buton radio). Arată gestionarea acestor elemente.
Toate programele trebuie să aibă pictograme non-standard.
Adăugați un element în meniu pentru a afișa o casetă de dialog fără moduri. veniți cu aspectul și elementele utilizate în dialog.
Schimbați dialogul Despre.