2017-01-31 23 views
0

현재 Open GL에 데이터를 표시하는 MFC SDI 프로그램이 있습니다. 스플리터 창을 사용하여 여러 데이터 파일을 한 번에 표시하도록 프로그램을 수정하려고합니다. 즉, 4 개의 스플리터 창이있는 경우 각각 다른 파일이 표시됩니다.MFC 분할기 창에서 다중 문서/뷰

지금까지 발견 한 모든 예제는 하나의 문서 만 여러보기에 표시하지만 한 번에 여러 문서를 표시해야합니다.

SDI 인터페이스이기 때문에 문제가 될 수 있다고 결론 짓기 시작했습니다. 나는 원래 여러 문서를 한꺼번에 지원할 분할 창을 사용하고 있었기 때문에 원래 생각했다.

내 첫 번째 질문은 SDI 인터페이스가 문제인가? 한 번에 하나의 파일로 제한됩니까?

MDI를 사용해야하는 경우, 분할기를 사용하여 하나의 MDI보기에 여러 문서를 표시 할 수 있습니까? 아니면 여전히 여러 MDI 창을 열어야합니까?

나는 그들이 (그들은, 최대 폐쇄 또는 바둑판 식으로 배열 할 수 있습니다) 완전한 기능이기 때문에, 아주 허용해야 여러 MDI-자식 창을 만들 생각 당신에게

+0

대신 MDI 인터페이스로 프로젝트를 다시 시작해야하는 것처럼 들립니다. :) –

+0

MDI는 여러 문서 처리 /보기에 필요합니다 (SDI는 하나의 doc 개체 만 만듭니다). 기본적으로 MDI 자식 창 (각 문서 개체에 하나씩)과 탭으로 구성된보기를 구현하는 두 가지 방법이 있습니다. Splitter 창을 사용하여 여러 문서 (각 창에 하나씩)를 표시하는 응용 프로그램을 보지 못했습니다. 매우 비표준으로 보일 것이며 프레임 워크를 직접 구현하는 작업을 수행하는 경우 3 개 또는 4 개의 문서를 표시해야하거나 사용자가 다른 페이지를 열어야하는 경우 클라이언트 영역을 분할하는 방법과 같은 문제를 해결해야합니다 - 사양 및 구현 작업이 많이 있습니다! –

+0

MDI 앱 중 하나는 각 분할에서 서로 다른 문서 /보기 유형에 대한 분할기 창을 사용합니다. 각 문서는 별도의 파일이지만 기본적으로 MDI 응용 프로그램은 아니지만 Google은 각기 다른 "CDocument"파생 클래스가 포함 된 단일 디스크 파일입니다. – franji1

답변

0

감사드립니다. 앱이 유휴 상태 (수확량)를 입력하자마자 Window-> Tile 명령을 게시 할 수도 있습니다. 그들은 고객 영역을 완전히 차지할 것입니다. CMDIChildWnd 파생 클래스에 닫기, 이동 또는 크기 조정을 비활성화하거나 제목 표시 줄을 짧게 또는 사용자 지정하지 않고 (클라이언트 영역이 아닌 메시지 처리를 사용자 정의해야 할 수도 있음) 사용자 정의를 제공 할 수 있습니다. 또한 WS_EX_TOOLWINDOW 확장 된 창 스타일을 사용하여 실험하십시오 (이 방법이 MDI 자식 창과 잘 작동하는지 확실하지 않으므로 적어도 Windows 8/10 및 7에서 테스트해야합니다).

또 다른 솔루션은 처음에는 탭이있는보기가있는 MDI 응용 프로그램을 만들 수 있으며 탭을 수용하는 창을 사용자 정의 할 수 있습니다 ... 실제로는 탭이 아닌 단순한 중첩되지 않는 자식 창 (이 두 가지를 정렬해야합니다. 클라이언트 영역). 뷰 윈도우가 "고정 된"크기 (크기 설정 또는 문서 크기, 예를 들어 이미지 크기에 의해 결정됨)이고 사용자가 크기 조정할 수없는 경우이 방법이 더 좋습니다. 모든보기를 표시하는 데 필요한 영역이 클라이언트 영역을 초과하는 경우 스크롤 막대를 표시하려면 MainFrame 창도 사용자 정의해야합니다. 이 작업은 많은 작업이지만 MFC가 원래 지원하지 않는 기능을 제공하기 위해 창 클래스를 수정해야하며 MFC 소스를 깊이 파고 들어야합니다.