MFC
다이얼로그에 뷰 올리기
디버그정
2008. 9. 4. 19:44
다이얼로그에 뷰 올리기
2007/12/09 14:32
MFC에서 Application을 개발할 때, 간편함의 이유로 MDI나 SDI보다는 Dialog based로 개발하는 경우가 많다. 하지만 다이얼로그 위에 뷰를 올릴 수가 없기 때문에 프로그램 개발에 많은 제약을 안을 수 밖에 없다. 이 문제를 다음과 같은 방법을 통해 다이얼로그에 뷰를 올릴 수 있도록 함으로써 보다 많은 융통성을 얻을 수 있다.
1. 다이얼로그 클래스에서
A. 멤버 변수를 추가해준다. 사용할 뷰의 이름이 CContentsView라고 할 때:
CCreateContext m_context; CContentsView *m_pView; |
B. OnInitDialog() 함수에서 뷰의 초기화를 수행한다.
RECT r = {5, 30, 194, 136}; m_context.m_pNewViewClass = RUNTIME_CLASS(CContentsView); m_pView = (CContentsView*)((CFrameWnd*)this)->CreateView(&m_context); ASSERT(m_pView); m_pView->OnInitialUpdate(); m_pView->ShowWindow(SW_NORMAL); m_pView->MoveWindow(&r); |
2. 뷰 클래스에 다음 구문을 추가해준다.
friend class CBaseDialog; |
음.. 이거면 됐어ㅋㅋ