본문 바로가기

Language/MFC

4대클래스 상호 참조

4대 클래스간 참조

#include "MainFrm.h" //메인프레임 헤더파일

#include "ClassDoc.h" //Doc클래스 헤더파일

#include "ClassView.h" //View를 include 할때는 반드시 Doc 헤더파일이 위에잇어야한다

#include "Class.h" //APP Class 의 헤더파일

 

●View클래스에서

void CClassView::OnMenuView() //뷰클래스

CClassApp *pApp=(CClassApp *)AfxGetApp(); //View -> App

CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd(); //View -> MainFrm

 

//View -> MainFrm -> Doc

CClassDoc *pDoc=(CClassDoc *)pMain->GetActiveDocument();

CClassDoc *pDoc=(CClassDoc *)GetDocument(); //View -> Doc

 

●MainFrame클래스에서

 

CClassView *pView=(CClassView *)GetActiveView(); //MainFrm -> View

CClassDoc *pDoc=(CClassDoc *)GetActiveDocument(); //MainFrm -> Doc

CClassApp *pApp=(CClassApp *)AfxGetApp(); //MainFrm -> App

 

 

●Doc클래스에서

CClassApp *pApp=(CClassApp *)AfxGetApp(); //Doc -> App

CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd(); //Doc -> MainFrm

 

// Doc -> MainFrm -> View

CClassView *pView=(CClassView *)pMain->GetActiveView();

CClassView *pView=(CClassView *)m_viewList.GetHead(); // Doc -> View

 

●App클래스에서

CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd(); //App -> MainFrm

//App -> MainFrm -> View

CClassView *pView=(CClassView *)pMain->GetActiveView();

//App -> MainFrm -> Doc

CClassDoc *pDoc=(CClassDoc *)pMain->GetActiveDocument();