MFC: OnInitialUpdate funkce třídy CFormView odvozeného

hlasů
3

My CFormView odvozené třídy je strukturován takto:

class FormViewClass : public CFormView
{
        ...
        FormViewClass();
        void Initialize();
        virtual void OnInitialUpdate();
        ...
};

V ideálním případě bych chtěl volat funkci Initialize () v těle konstruktoru takto:

FormViewClass::FormViewClass()
{
        ...
        // originally I want to call Initialize function here
        Initialize();
        ...
}

Nicméně, protože chci tuto funkci bude zodpovědný za veškeré inicializace této třídy, kdy vznikají, a obsahuje MFC objektů inicializace, například combobox, editační kontrola, kontrola checkbox, radio tlačítkovým ovládáním atd bych měl být namísto toho zavoláte inicializace funkce () tady, jak jsem si myslel:

void FormViewClass::OnInitialUpdate()
{
    // Should I call Initialize function instead here?
    Initialize();
}

V současné době mají paměť non-MFC a inicializaci objektu v konstruktoru (tedy volání Iniitalize () pomocná funkce v konstruktoru) a MFC objekt iniitalization v funkce zpracování OnIniitalUpdate (). Bylo by skvělé slyšet vaše myšlenky o tom, abych mohl správně refaktorovat kód. Díky předem.

Položena 22/06/2009 v 23:26
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
6

Myslím, že máte pravdu dělat to tak, jak to děláte.

Obecně platí, že bych se pokusit inicializovat věci co nejdříve (ale ne dříve 8-) Přitom non-GUI věci v konstruktoru, a GUI věci v OnInitialUpdatedává smysl.

(Pokud OnInitDialogexistovala CFormView, že by asi bylo lepší místo než OnInitialUpdate, ale nemyslím si, že to dělá ).

Odpovězeno 22/06/2009 v 23:30
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more