给自定义view类增添doc类
给自定义view类添加doc类
在单文档结构中,(向导框架生成的view类和doc类分别是 CStuView.cpp 和CStuDoc.cpp,主框架类是 cmainframe)现在自己添加了一CTeacherView类和一CTeacherDoc类,现在在这个自定义view类中获取doc指针,结果总是出错,代码如下
CTeacher* CTeacherView::GetTeacherDocument()
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTeacher)));
return (CTeacher*)m_pDocument;
}
在调试中发现m_pDocument类为CStuDoc*类型,故在执行为Assert语句时会出错!
请问,怎样才能让CTeacherView类和CTeacherDoc类关联
------解决方案--------------------
m_pDocument怎么初始化的?
------解决方案--------------------
“单文档结构中”通常是 一个doc ,多个 view, 你要的 是 MDI 吧。
------解决方案--------------------
BOOL CMyTestPrj2App::InitInstance()
{
...
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MyTestPrj2TYPE,
RUNTIME_CLASS(CMyTestPrj2Doc),
RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(CMyTestPrj2View));
if (!pDocTemplate) return FALSE;
AddDocTemplate(pDocTemplate);
//添加你自己的文档模版关联
....
return TRUE;
}
------解决方案--------------------
LS正解,你新的view没加入的文档模版,m_pDocument是不会赋值的!
你要么用多文档的MDI,要么Frame->activeview->doc
在单文档结构中,(向导框架生成的view类和doc类分别是 CStuView.cpp 和CStuDoc.cpp,主框架类是 cmainframe)现在自己添加了一CTeacherView类和一CTeacherDoc类,现在在这个自定义view类中获取doc指针,结果总是出错,代码如下
CTeacher* CTeacherView::GetTeacherDocument()
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTeacher)));
return (CTeacher*)m_pDocument;
}
在调试中发现m_pDocument类为CStuDoc*类型,故在执行为Assert语句时会出错!
请问,怎样才能让CTeacherView类和CTeacherDoc类关联
------解决方案--------------------
m_pDocument怎么初始化的?
------解决方案--------------------
“单文档结构中”通常是 一个doc ,多个 view, 你要的 是 MDI 吧。
------解决方案--------------------
BOOL CMyTestPrj2App::InitInstance()
{
...
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_MyTestPrj2TYPE,
RUNTIME_CLASS(CMyTestPrj2Doc),
RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(CMyTestPrj2View));
if (!pDocTemplate) return FALSE;
AddDocTemplate(pDocTemplate);
//添加你自己的文档模版关联
....
return TRUE;
}
------解决方案--------------------
LS正解,你新的view没加入的文档模版,m_pDocument是不会赋值的!
你要么用多文档的MDI,要么Frame->activeview->doc