 |
|
 |
 | MFC Tips - Dialog C++ |  |
Trimis: 19/07/2007 16:23 |
|
|
| Ad_Infinitum |
| Administrator |

 |
 |
| Data inscrierii: 23/Iun/2007 |
| Mesaje: 212 |
|
|
|
 |
 |
 |
|
Cum schimbam numele clasei unui dialog?
Problema
Dialoagele fac parte din clasa fereastra predefinita "#32770". Se poate ivi cerinta de a modifica numele clasei unuia sau mai multe dialoage din aplicatie, de exemplu cu scopul de a fi usor diferentiate atunci cand le cautam cu FindWindow, FindWindowEx, etc sau atunci cand folosim o scula de testare automata.
Rezolvare
VS6.0
In fereastra "ResourceView" dau right-click pe radacina tree-ului si selectez "Properties".
In dialogul "Resource File Properties" decheckuiesc "Enable MFC features".
Dau right-click pe dialog template si aleg "Properties".
In dialogul "Dialog Properties", introduc noul nume al clasei, ex. "Mama Leone"; NOTA: in lipsa primilor doi pasi, campul "Class name" este disabled.
In sfarsit, in functia InitInstance al aplicatiei MFC adaug urmatorul cod:
| Citat: |
WNDCLASS wc;
// Get the info for this class.
// #32770 is the default class name for dialogs boxes.
::GetClassInfo(AfxGetInstanceHandle(), _T("#32770"), &wc);
// Change the name of the class.
wc.lpszClassName = _T("Mama Leone");
// Register this class so that MFC can use it.
AfxRegisterClass(&wc);
|
VS2003, VS2005
In fereastra "Resource View" dau right-click pe numele fisierului .rc si selectez "Properties"
Schimb "MFC Mode" din True in False.
...Urmeaza pasi similari cu cei de la VS6.0...
NOTA: Numele clasei se poate adauga si manual in fisierul de resurse (.rc) utilizând optiunea "CLASS".
Exemplu
| Citat: |
IDD_MY_DIALOG DIALOGEX 0, 0, 320, 200
STYLE DS_SHELLFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION
| DS_MODALFRAME
| WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "My Dialog"
CLASS "Mama Leone"
|
|
|
|
|
|
|
|
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro
|
|