Witam.
Tworze frame'a ze CSplitterWnd (static) z dwoma roznymi view:

 
	CRect rect;
 	GetClientRect( &rect );
 	if ( splitterWnd.CreateStatic (this, 2, 1, WS_CHILD|WS_VISIBLE, AFX_IDW_PANE_FIRST ) ) {
		splitterWnd.IdFromRowCol( 0, 0 );
		if ( !splitterWnd.CreateView (0, 0, pContext->m_pNewViewClass, CSize (0, rect.Height()*3/4), pContext) ||
			!splitterWnd.CreateView (1, 0, RUNTIME_CLASS( CView2 ), CSize (0, 0), pContext)) {
				return FALSE;
		}
 	}

Template tworzony nastepujaco:

	template = new CMultiDocTemplate( IDR_TEMPLATE,
		RUNTIME_CLASS( CMyDoc ),
		RUNTIME_CLASS( CMyFrame ),
		RUNTIME_CLASS( CView1 ));
	if (!template )
		return FALSE;
	AddDocTemplate(template );

Jesli chodzi o tworzenie - wszystko wydaje sie dzialac prawidlowo. Tworzy sie frame, tworza sie view. Niestety podczas zamykania frame'a powstaje "first chance exception" w CDocument::OnCloseDocument(); Debugujac dalej zauwazylem, ze OnCloseDocument() wchodzi w petle while po ilosci view (m_viewList.size = 2 ). Nastepnie podczas kasowania frame wewnatrz tej petli ( pFrame->Destroywindow() ) funkcja MDIDestroy generuje wyjatek (zdaje sie, ze ma to cos wspolnego z wysylaniem message do parenta frame'a : WM_MDIDESTROY ).
Najgorsze jest to, ze powyzszy blad/wyjatek nie zawsze ma miejsce i czasem trzeba kilkunastu prob zeby go "wygenerowac". Moze ktos ma jakies doswiadczenia ze splitterem i wieloma view do pojedynczego frame'a. Pozdrawiam.