본문 바로가기

Programming Tips/MFC

MFC 분할 윈도우(1)

분할 윈도우(Splitter Window)는 하나의 프레임 윈도우를 두 개 이상의 윈도우로 나누어 주는 기능을 하는 윈도우 입니다. 가장 대표적인 예로 아래 그림의 윈도우 탐색기를 들 수 있으며 같은 데이터를 보여주는데 보여주는 위치나 보여주는 형태가 다른 경우에 많이 사용합니다.



사용자는 분할 윈도우를 이용하여 원하는 만큼의 뷰 영역을 설정 할 수 있고, 각각의 뷰 영역에는 뷰 윈도우 뿐만 아니라 여러가지 일반 윈도우도 올라 갈 수 있습니다. 분할 윈도우에는 다음과 같이 두 가지 종류가 있습니다.

◎ 동적 분할 윈도우
 - 프로그램 실행 중 윈도우를 하나로 합치거나 나눌 수 있으며 스크롤바 끝 부분에 분할바가 있습니다. 
   분할바를 윈도우의 한 쪽 끝까지 움직이면 나누어져있던 윈도우가 합쳐지고 끝 쪽에 있는 분할바를 안
   안 쪽으로 끌어당기면 윈도우를 다시 분할 할 수 있습니다.

◎ 정적 분할 윈도우
 - 정적 분할 윈도우는 윈도우가 분할된 상태로 프로그램이 시작되고, 프로그램 실행 중에 분할된 윈도우
   를 다시 합칠 수 없는 형태를 가지고 있습니다. 분할바를 윈도우 한 쪽의 끝까지 밀어도 분할된 윈도우
   가 합쳐지지 않으며, 분할된 영역들을 만들거나 없앨 수 없습니다. 위 그림의 윈도우 탐색기는 정적 분
   할 윈도우의 예라고 볼 수 있습니다. 정적 분할윈도우에는 각각의 영역에 서로 다른 클래스의 뷰를 배치
   할 수 있습니다. 한 쪽에 폼뷰를 배치하고 여러가지 컨트롤들도 사용 할 수 있죠.

MFC에서는 분할 윈도우의 사용을 위해 CSplitterWnd라는 클래스를 제공하고 있으며, 동적이든 정적이든
쉽게 설정하고 만들 수 있습니다.