MFC:CFormView派生类的OnInitialUpdate函数

时间:2009-06-22 22:26:45

标签: c++ mfc refactoring initialization

我的CFormView派生类的结构如下:

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

理想情况下,我想在构造函数的主体中调用Initialize()函数,如下所示:

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

但是,由于我希望此函数在创建时负责此类的所有初始化,并且它包含MFC对象初始化,例如组合框,编辑控件,复选框控件,单选按钮控件等,我应该是而是像我想的那样在这里调用Initialize()函数:

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

目前我在构造函数中有非MFC内存和对象初始化(因此在构造函数中调用Iniitalize()辅助函数)和OnIniitalUpdate()处理函数中的MFC对象iniitalization。听听你对它的想法会很好,这样我就可以正确地重构代码。提前谢谢。

1 个答案:

答案 0 :(得分:6)

我认为你按照自己的方式去做是对的。

一般情况下,我会尝试尽早初始化事物(但不是早期的8-),因此在构造函数中执行非GUI内容,而OnInitialUpdate中的GUI内容是有意义的。

(如果OnInitDialog存在CFormView,那可能比OnInitialUpdate更好,但I don't think it does。)