본문 바로가기
프로그래밍/시스템

Doc/View 구조와 No Doc/View 구조의 차이점

by 써드아이 2010. 10. 2.
* No Doc/View 구조 

- View가 CWnd를 상속받아 생성됨

- CMainFrame

BOOL OnCmdMsg();
void OnSetFocus();
CChildView    m_wndView;

OnCreate() 
m_wndView.Create(); <-- view의 생성
PreCreateWindow()
cs.dwExStyle &= ~WS_EX_CLIENTEDGE;
cs.lpszClass = AfxRegisterWndClass(0);

- CView
OnPaint()
PreCreateWindow() 
cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass();


* Doc/View 구조

- View가 CView로부터 상속됨

- CView
OnDraw() --> OnPaint() 대시 이 함수가 호출된다.

- MainFrame
OnCreate 함수를 재정의 하지 않아 CFrameWnd 클래스의 멤버함수가 호출된다.
이 함수에서 내부적으로 view를 생성하는 함수 호출