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;

 

.. 이거면 됐어ㅋㅋ