Иметь один простой вид и один разделенный вид в MFC
У меня есть проект SDI с несколькими представлениями. Одно из представлений должно быть разделено, вероятно, с помощью CSplitterWnd или CSplitterWndEx. Но другие виды не должны быть разделены и не должны иметь кнопок разделения и полос прокрутки. Я пробовал различные комбинации, используя CSplitterWnd и некоторые классы, полученные из него, которые я нашел в Интернете, но я не могу получить то, что мне нужно. Итак, вот ограничения:
Один вид - CViewUnsplit, без сплиттера
Во втором представлении изначально отображается только CViewSplitLeft.
Команда позволяет пользователю разделить / удалить, добавить или удалить CViewRight.
1 ответ
Это должно работать следующим образом.
Во-первых, CViewUnsplit - это способ создания простого приложения SDI.
Второе переключаемое представление может быть легко достигнуто простым переключением представления. Это хорошо задокументировано. Основы показаны здесь в этом примере с двумя представлениями http://msdn.microsoft.com/en-us/library/s199bks0.aspx
Третий немного сложнее. Просто создайте разделитель и поместите CViewSplitLeft с SetParent в левую часть разделителя. Правильный вид всегда может остаться в сплиттере. Опять же, здесь сплиттер просто скрыт в главном окне. Когда вы переключаетесь обратно в другое представление, просто снова используйте SetParent и переместите CViewSplitLeft в CMainFrame.
Всегда просто скрывайте все ненужные виды. Позаботьтесь об идентификаторах видов, как показано в примере. В противном случае изменение размера не будет работать.