MFC :

2009-06-22 7 views
3

나의하여 CformView 파생 클래스로 구성된다하여 CformView 파생 클래스의에서 OnInitialUpdate 기능은 다음과 같습니다MFC :

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

를 이상적으로, 다음과 같이 내가 생성자의 본문에 초기화() 함수를 호출하고 싶습니다 그러나

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

, 내가 생성 될 때이 기능이 클래스의 모든 초기화에 대한 책임을 져야 할, 그리고 MFC는 등 콤보 상자, 편집 컨트롤, 체크 박스 제어, 라디오 버튼 컨트롤 등의 초기화를 개체를 포함하고 있기 때문에 ., 나는 대신에 Initial 내가 생각 여기() 함수를이지는 :

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

가 현재 나는 OnIniitalUpdate의 생성자 (따라서 생성자 Iniitalize() 도우미 함수를 호출)와 MFC 객체 iniitalization 비 MFC 메모리와 객체 초기화가() 핸들러 함수. 내가 코드를 제대로 리팩터링 할 수 있도록 여러분의 생각을 듣는 것이 좋을 것입니다. 미리 감사드립니다.

답변

6

나는 당신이하고있는 것처럼 그렇게 할 수 있다고 생각합니다.

일반적으로 생성자에서 비 GUI 항목을 수행하면서 가능한 한 일찍 초기화하려고 시도하지만 (초기 8 개가 없음) OnInitialUpdate의 GUI 항목이 적합합니다.

은 ( OnInitDialogCFormView을 위해 존재하는 경우에, 그것은 아마 OnInitialUpdate하지만 I don't think it does보다 더 좋은 곳이 될 것입니다.)

+1

아니 그렇지 않습니다. AFAIK, OnInitialUpdate는 CFormView 클래스의 OnInitDialog에 해당합니다. 당신의 생각에 감사드립니다. – stanigator