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

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: SDI С несколькими представлениями

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

Romeo » 23 ноя 2007, 11:30

Зарегистируй ещё один док темплэйт. Скопируй последний участок кода и вставь его ниже и замени CView1 на CView2.

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

Aram » 04 ноя 2007, 23:47

Я создал 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);

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

Вернуться к началу