csplitterwnd 예제

스플리터 창, 여러 보기 클래스가 없는 MDI 응용 프로그램입니다. 표준 MDI 응용 프로그램을 조금변경하면 여러 뷰를 사용할 수 있습니다. 예를 들어 MYMFC21D가 보여 주듯이 사용 가능한 각 추가 뷰 클래스에 대해 메뉴 항목과 처리기 함수를 추가하는 것만하면 됩니다. mymfc21View.cpp에서 OnPreparePrinting() 함수를 편집합니다. 이 함수는 인쇄 작업의 최대 페이지 수를 설정합니다. 이 예제에는 페이지가 하나만 있습니다. 재정의된 OnPreparePrinting() 함수에서 기본 클래스 DoPreparePrinting() 함수를 호출하는 것이 절대적으로 필요합니다. 다음 코드 추가: 이 예제에서 사용자는 뷰를 단일 뷰 클래스에서 모두 관리하는 4개의 별도 뷰 개체가 있는 4개의 창으로 동적으로 분할할 수 있습니다. MYMFC19의 문서와 보기 코드를 사용합니다. AppWizard를 사용하면 새 응용 프로그램에 동적 스플리터 창을 추가할 수 있습니다. SDI 프로젝트를 만듭니다. AppWizard 4 단계 대화 상자에서 고급 단추를 클릭합니다. 창 스타일 탭을 클릭하고 여기에 표시된 것처럼 분할 창 사용을 선택합니다.

이 문서에서는 뷰를 삭제하고 다시 만들지 않고 스플리터 창에서 여러 뷰 간에 전환하는 방법을 설명합니다. 뷰를 만들고 파괴하는 것은 비효율적이며 종종 응용 프로그램의 디자인을 방해하지만 뷰전환의 유일한 예는 그렇게하고 있습니다! CSplitterWnd 대체 클래스를 만들어 창당 여러 뷰를 가볍고 사용하기 쉬운 방법으로 추가했습니다. 참고: 이 클래스는 동적 스플리터가 아닌 정적 스플리터전용입니다. MYMFC18 예제를 제외하고 이 책에서 지금까지 본 각 프로그램에는 문서에 하나의 보기만 첨부되어 있습니다. Microsoft Windows 기반 워드 프로세서를 사용한 경우 문서의 여러 부분에서 두 개의 창을 동시에 여는 것이 편리합니다. 두 창 모두 일반 뷰를 포함하거나 한 창에 페이지 레이아웃 뷰가 포함될 수 있으며 다른 창에는 개요 보기가 포함될 수 있습니다. 작업을 보기 전에 이 예제에서 MYMFC20 단계를 살펴보겠습니다. CMymfc21Doc 클래스에 CStringArray 데이터 멤버를 추가합니다. Mymfc21Doc.h 헤더 파일을 편집하거나 ClassView를 사용합니다.

동적 스플리터 창을 사용하면 메뉴 항목을 선택하거나 스크롤 막대에 있는 스플리터 상자를 드래그하여 언제든지 창을 분할할 수 있습니다. 동적 분할자 창의 창은 일반적으로 동일한 뷰 클래스를 사용합니다. 왼쪽 위 창은 스플리터 창이 생성될 때 특정 뷰로 초기화됩니다. 동적 분할자 창에서 스크롤 막대는 뷰 간에 공유됩니다. 예를 들어, 단일 가로 분할이 있는 창에서 아래쪽 스크롤 막대는 두 보기를 모두 제어합니다. 동적 스플리터 응용 프로그램은 단일 뷰 개체로 시작합니다. 사용자가 프레임을 분할하면 다른 뷰 객체가 생성됩니다. 사용자가 프레임을 분할 해제하면 뷰 개체가 소멸됩니다.