RicH and FamouS

       Home         Glosar IT                                                                                                                                                                                                              SUBSCRIBE NOW!
        

20.04.2009

MFC Tips - Dialog

Cum schimbam numele clasei unui dialog?
Problema:
Dialoagele fac parte din clasa fereastra predefinita "#32770". Se poate ivi cerinta de a schimba 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
  1. In fereastra "ResourceView" dau right-click pe radacina tree-ului si selectez "Properties".
  2. In dialogul "Resource File Properties" decheckuiesc "Enable MFC features".
  3. Dau right-click pe dialog template si aleg "Properties".
  4. In dialogul "Dialog Properties", introduc noul nume al clasei, ex. "Mama Leone"; NOTA: in lipsa primilor doi pasi, campul "Class name" este disabled.
  5. In sfarsit, in functia InitInstance al aplicatiei MFC adaug urmatorul cod:

    Cod:
    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) folosind optiunea "CLASS".

Exemplu:

Cod:
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"

    Blog din Moldova    FastCounter 

 
Copyright © 2008-2010 Foster1. All rights reserved.