본문 바로가기

C/C++

MFC SDI 템플릿 기본 개념

① 애플리케이션 클래스 얻기

CTestApp *pApp = (CTestApp *) AfxGetApp();

② 메인프레임 클래스 얻기

CMainFrame *pFrame = (CMainFrame *) AfxGetMainWnd();

③ View 윈도 클래스 얻기

CMainFrame *pFrame = (CMainFrame *) AfxGetMainWnd();
CTestView *pView = (CTestView *) pFrame->GetActiveView();

or
CTestView *pView = (CTestView *) ((CMainFrame *) AfxGetMainWnd())->GetActiveView();

④ Document 클래스 얻기

CMainFrame *pFrame = (CMainFrame *) AfxGetMainWnd();
CTestDoc *pDoc = (CTestDoc *) pFrame->GetActiveDocument();

...................................................................................................................................................................
...................................................................................................................................................................
/*

현재 프로그램의 view를 얻을려면, 그 프로그램의 메인프레임에 접근하고 난 후 view에 접근한다.
view는 현재 document의 데이터를 출력하는 것이 기본이니까 view와 document는 쌍으로 볼 수 있다.
결국, 현재 프로그램에서 view와 document에 접근하기 위해서는 먼저 프레임에 접근해야 한다.

다시 말해, view로 접근하려면 먼저 프레임에 접근하고, 그 다음에 그 프레임에서 view에 접근
프레임은 WinApp 안에 소속되어 있다.

*/

* 출처
Visual C++ Programming Bible 영진출판사