2015년 5월 2일 토요일

MFC MainFrame, App, Doc,View의 포인터 얻기

(***에 자신이 만든 프로젝트 클래스 이름을 넣으면됨)

메인프레임과 도큐먼트, 뷰 세가지 모두다 포인터 값을 얻어오려면
헤더파일 순서는 이렇게 해주어야한다.

#include "MainFrm.h"
#include "***Doc.h"
#include "***View.h"

메인프레임만 포인터값 가져오려면 메인프레임 헤더만 불러와도 되지만
도큐먼트나 뷰 클래스의 포인터값을 받아오려면 위 순서대로 헤더파일을 불러야한다.

메인프레임->도큐먼트->뷰 순서

순서가 틀리면 에러가 나므로 주의가 필요하다.

헤더파일을 선언 다 했으면
아래와 같이 포인터를 선언하여 지정해주자

MainFrame

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

App

***App *pApp = (***App *) AfxGetApp();

Document

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

View 포인터 얻기

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

댓글 없음:

댓글 쓰기