본문 바로가기

Programming/MFC

분할 윈도우를 이용하여 뷰 전환하기

사용자 삽입 이미지

사용자 삽입 이미지

// SDI

 

// 여러개의 view를 만든다.

 

CSystemView1

CSystemView1

 

 

// 분할 윈도우를 사용하여 뷰를 붙인다.

// CreateClient 메시지 재정의

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
 // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.

 if (!m_wndSplitter.CreateStatic(this,1,2))
  return FALSE;

 m_wndSplitter.CreateView( 0, 0, RUNTIME_CLASS( CMainView ),  CSize( 0, 0 ), pContext ) ;
 

 m_nView1 = m_wndSplitter.AddView(0, 1, RUNTIME_CLASS( CSystemView1 ), pContext);
 m_nView2 = m_wndSplitter.AddView(0, 1, RUNTIME_CLASS( CSystemView2 ), pContext);


 return TRUE ;
}

 

// switching view

void CMainFrame::SwitchRightViews( int viewNumber )
{
 switch (viewNumber)
 {
 case 1:
  m_wndSplitter.ShowView(m_nView1);
  break;
 case 2:
  m_wndSplitter.ShowView(m_nView2);
  break;
 case 3:
  m_wndSplitter.ShowView(m_nView3);
  break;
 }
}

 

 

// 뷰 선택

// Menu SystemView 1
void CMainFrame::OnMenuSystemview1()
{
 SwitchRightViews( 1 ) ;
 // TODO: 여기에 명령 처리기 코드를 추가합니다.
}

// Menu SystemView 2
void CMainFrame::OnMenuSystemview2()
{
 SwitchRightViews( 2 ) ;
 // TODO: 여기에 명령 처리기 코드를 추가합니다.
}