분할 윈도우 사용방법

1. 동적 분할 윈도우

- MainFrm.h

CSplitterWnd m_wndSplitterWnd;

- MainFrm.cpp
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
return m_wndSplitterWnd.Create(this, 2, 2, CSize(1, 1), pContext);
// return CFrameWnd::OnCreateClient(lpcs, pContext);
}
위와 같이 하면 동적 분할 윈도우를 생성하여 사용할 수 있다.
2. 정적 분할 윈도우
- MainFrm.h
CSplitterWnd m_wndSplitHor; //수평 분항
 CSplitterWnd m_wndSplitVer; //수직 분할
 

- MainFrm.cpp
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
//1. 우선 첫번째로 1행 2열로 윈도우를 정적분할 한다.
if(!m_wndSplitHor.CreateStatic(this,1, 2))
return FALSE;

//2. 첫번째열(0,0)에 해당하는 뷰클래스를 붙인다.
if(!m_wndSplitHor.CreateView(0, 0,
RUNTIME_CLASS(CLeftListView), CSize(200, 200), pContext))
return FALSE;

//3. 두번째 뷰를 다시 2행 1열로 정적분할 한다.
if(!m_wndSplitVer.CreateStatic(&m_wndSplitHor, 2, 1,
WS_CHILD | WS_VISIBLE,
m_wndSplitHor.IdFromRowCol(0, 1)))
return FALSE;

//4. 두번째로 정적 분할된 윈도우에 첫번째 뷰를 붙인다.
if(!m_wndSplitVer.CreateView(0, 0,
RUNTIME_CLASS(CTopHtmlView), CSize(100, 300), pContext))
return FALSE;

//5. 두번째로 정적 분할된 윈도우에 두번째 뷰를 붙인다.
if(!m_wndSplitVer.CreateView(1, 0,
RUNTIME_CLASS(CBottomEditView), CSize(200, 100), pContext))
return FALSE;

//6. 왼쪽의 뷰에 포커스를 준다.
SetActiveView((CView*)m_wndSplitHor.GetPane(0,0));

return TRUE;
// return CFrameWnd::OnCreateClient(lpcs, pContext);
}

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다