MFC:一个CFormView派生类的函数OnInitialUpdate(MFC: OnInitia

2019-09-16 17:00发布

我CFormView派生类的结构如下:

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

理想情况下,我想调用初始化()函数的构造函数体如下:

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

但是,因为我想这个函数来负责这一类的所有初始化被创建时,它包含MFC对象初始化,如组合框,编辑控件,CheckBox控件,单选按钮控制,等等,应该是我,而不是调用在这里初始化()函数,我想:

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

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

Answer 1:

我认为你是对的去做你这样做的方式。

在一般情况下,我会尝试尽可能早地初始化的东西(但不早8)这样在构造非GUI的东西,和GUI的东西,在OnInitialUpdate才有意义。

(如果OnInitDialog存在了CFormView ,那很可能会比一个更好的地方OnInitialUpdate ,但我不认为它 。)



文章来源: MFC: OnInitialUpdate function of a CFormView-derived class