다이얼로그에 CView에서 상속받은 클래스를
붙이려면 먼저 CFrameWnd에 CView를 붙이고 그 CFrameWnd를 다이얼로그에
붙이면 가능합니다. CView 같은경우는 독립적으로 윈도우를 구성하기 보다는
CFrameWnd의 차일드 윈도우로 사용될 목적으로 만든어진 클래스이기 때문에
Frame에 안붙일경우 문제가 많습니다.
개인적인 생각으로는 특별히 CView을 사용해야할 이유가 없다면 CWnd에서 바로
상속받은 클래스를 다이얼로그에 붙이는것이 좋지 않을까 합니다.
CFrameWnd m_wndFrame;
CView *pView;
if(m_wndFrame.m_hWnd)
m_wndFrame.DestroyWindow();
CRect rectClient;
GetClientRect(rectClient);
m_wndFrame.Create(NULL,NULL,WS_CHILD|WS_VISIBLE|WS_BORDER,
rectClient, this);
CCreateContext context;
context.m_pCurrentDoc = NULL;
context.m_pCurrentFrame= NULL;
context.m_pNewViewClass = RUNTIME_CLASS(CMapView);
m_wndFrame.CreateView(&context);
m_wndFrame.RecalcLayout();
m_wndFrame.ShowWindow( SW_SHOW );
m_wndFrame.InitialUpdateFrame( NULL, TRUE );
pView = (CMapView*)m_wndFrame.GetActiveView();
[출처] CView 를 다이알로그에 동적 생성|작성자 리버
'old drawer > C, C++, MFC' 카테고리의 다른 글
[MFC]윈도우 리사이즈시 컨트롤 사이즈 리사이즈 (0) | 2012.07.23 |
---|---|
[MFC] 다이얼로그 사이즈 조절 관련 함수들 (0) | 2012.07.23 |
[MFC] 버튼의 동적생성 (0) | 2012.07.20 |
[MFC] 다이얼로그 동적 생성 (1) | 2012.07.19 |
[MFC] CEdit 입력 제어 (0) | 2012.07.19 |