Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Splitter для CView


Автор: Mev 25.8.2011, 23:35
как разделить CView на две части ?

Автор: Earnest 26.8.2011, 07:25
Если использовать средства MFC, то никак. Разделить можно фрейм - сплиттером. Т.е. создать во фрейме сплиттер, и уже в нем создавать виды. Читай про CSplitterWnd в MSDN, там написано, какой код куда нужно вставлять.

Автор: Mev 26.8.2011, 19:49
А можно как нибудь фреймы менять во время выполнения программы, с одного на другой?

Автор: Earnest 29.8.2011, 07:58
Не совсем поняла вопрос. В смысле, переключаться между разделенным фреймом и единым? Да можно, конечно. И по разному это реализовать, смотря что ты хочешь. Если хочешь - нажал кнопку - разделил, еще раз нажал (или отжал) - объединил, тогда придется ручками пописать.
Если использовать мастер для вставки сплиттера во фрейм, то он сгенерирует код, который будет делить окно по команде "Разделить" из меню Windows. Собственно, там просто вызов каких-то функций сплиттера, насколько я помню. Вот оттуда нужно списать код для разделения. А "объединение" - вроде бы просто удалить лишние виды, а может тоже у сплиттера есть команда, точно не помню. В общем, MSDN тебе в помощь.

Автор: Mev 29.8.2011, 10:58
Спасибо Вам Earnest за помощь.
Что касается как разделить CView на две части, нашел в интернете готовый класс, где предостовляется такая возможность. Может кому пригодится: http://www.codeproject.com/KB/splitter/SplitterCtrl.aspx?bmkres=success

Автор: spyswamp 29.8.2011, 15:10
Mev, тему помечай решенной, уже ж не маленький мальчик.

Автор: Earnest 29.8.2011, 15:10
Цитата(Mev @  29.8.2011,  11:58 Найти цитируемый пост)
Что касается как разделить CView на две части, нашел в интернете готовый класс, где предостовляется такая возможность.

Видишь ли, MFC делят не вид, а фрейм не просто так... Внутри панелей сплиттера нужно создать какие-то пользовательские окна, и логично, что это будет вид (последняя так сказать отображающая инстанция MFC). Не создавать же вид в виде... А поделить фрейм - самое оно. Т.е. получается иерархия фрейм - сплиттер - виды. Точно так же имеет смыл использовать и найденный тобою контрол-сплиттер. Там ведь ясно сказано, что он аналогичен MFC-шному, но более удобен (по мнению автора). В этом смысле неважно, какой разделитель используется. Кстати, MFC-сплиттер можно использовать не только в фрейме (после доводки напильником). Но он действительно довольно убог.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)