2014-11-20 10 views
0

У меня есть проект SDI с несколькими видами. Один из видов должен быть разделен, возможно, с CSplitterWnd или CSplitterWndEx. Но другие взгляды не должны быть разделены, и не должны иметь разделенных кнопок и полос прокрутки. Я пробовал различные комбинации с использованием CSplitterWnd и некоторых классов, полученных из него, которые я нашел в Интернете, но я не могу получить то, что мне нужно. Так вот ограничения:Есть один простой вид и один вид сплита в MFC

  1. Один вид является CViewUnsplit, без разветвителя

  2. Второй вид отображает первоначально только CViewSplitLeft

  3. Команда позволяет пользователю разделить/неразъемные и добавить или удалить CViewRight.

Split the second view only

+0

Вам нужно будет показать нам, что вы пробовали (в коде) и почему это не удалось. – user1793036

ответ

0

Он должен работать следующим образом.

  1. Первый - CViewUnsplit - это просто способ создания простого приложения SDI.

  2. Второй переключаемый вид можно легко получить, просто заменив вид. Это хорошо документировано. Основы приведены здесь в этом примере с двумя видами http://msdn.microsoft.com/en-us/library/s199bks0.aspx

  3. Третий немного сложнее. Просто создайте разделитель и поместите CViewSplitLeft с помощью SetParent в левую часть сплиттера. Правильный вид всегда может оставаться в сплиттере. Опять же здесь сплиттер просто скрыт в главном окне. Когда вы снова переключаетесь на другой вид, просто используйте SetParent еще раз и переместите CViewSplitLeft в CMainFrame.

Всегда просто скрывайте все ненужные виды. Позаботьтесь о идентификаторах представлений, как показано в образце. В противном случае изменение размера не будет работать.

Смежные вопросы