CSplitterWnd для MDI, с несколькими типами документов
От: tonchitos  
Дата: 27.06.08 12:28
Оценка:
Мне нужно создать разделитель, в левой панели разделителя должен быть один документ-вид, он должен работать как SDI, во второй панели разделителя должны быть остальные документы (двух разных типов), они должны работать как MDI...
Как это осуществить, хотелось бы реальный совет...а то у голова кругом


[QUOTE]Лучше вообще не вызывать стандартный OnCreateClient И CreateClient, т.к. создавать MDICLient придется не так.
Создать его нужно во второй панели статического сплиттера, с помощью вызова CSplitterWind::CreateView, а потом обязательно достать хандл и присвоить его m-hWndMDIClient. У тебя ведь сплиттер статический? Так вот, первую панель делай стандартно, а вторая должна быть MDI-клиентом.
Поскольку CreateView требуется RUNTIME_CLASS, то нужно сделать свой вариант MDIClient, с динамическим созданием.
Или переопределить CSplitterWnd, и создавать MDI-клиента прямо, без всяких оболочек. Я бы пожалуй, так и делала — тогда нужно передрать код CreateView, выкинув лишние аргументы и прочую фигню, а вместо pWnd = (CWnd*)pViewClass->CreateObject() вставить создание MDI-клиента. И не забыть вернуть его хандл, чтобы присвоить переменной главного окна.
Возможно, будут еще какие-то кочки, но это только в процессе отладки выяснится. По-меоему все должно срастись. [/QUOTE]

вот что мне предложили...если это хороший вариант, то разбясните поподробнее плиз....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.