Страница 1 из 1

SDI С несколькими представлениями

Добавлено: 04 ноя 2007, 23:47
Aram
Я создал SDI приложение и хочу использовать несколько представлений.
Я написал следующий код.

Код: Выделить всё

CMainFrame::OnViewSwitch()
{
CDocument * pDoc=GetActiveDocument();
CView * pCurrView=GetActiveView();
CView * pNewView;
	If(CheckView)
{
		
pNewView=(CView *)new CView1;
CheckView=0;
}
Else
{	
pNewView=(CView *)new CView2;
CheckView=1;

}
pNewView->Create(NULL, NULL,	 AFX_WS_DEFAULT_VIEW,
			 rectDefault,
			 this, AFX_IDW_PANE_FIRST, NULL);
pNewView->ShowWindow(SW_SHOW);
pCurrView->ShowWindow(SW_HIDE);
pDoc->AddView(pNewView);

pDoc->RemoveView(pCurrView);
SetActiveView(pNewView);
pNewView->OnInitialUpdate();
RecalcLayout();
}

Все заработало, но когда я меняю представление с CView1 на CView2 или наоборот, и после этого нажимаю на кнопку «Новый документ» появляется ошибка.
Я думаю что это из-за

Код: Выделить всё

CSingleDocTemplate* pDocTemplate;
	pDocTemplate = new CSingleDocTemplate(
		IDR_MAINFRAME,
		RUNTIME_CLASS(CDisertaciyaDoc),
		RUNTIME_CLASS(CMainFrame), // main SDI frame window
		RUNTIME_CLASS(CView1));
	AddDocTemplate(pDocTemplate);

Но не могу понять как мне создать приложение с несколькими окнами представления

Re: SDI С несколькими представлениями

Добавлено: 23 ноя 2007, 11:30
Romeo
Зарегистируй ещё один док темплэйт. Скопируй последний участок кода и вставь его ниже и замени CView1 на CView2.