CTestView是创建工程时的视类,拆分窗体产生新类CRightView
我在文档类中这样写:
CView* CTestDoc::GetView(CRuntimeClass* pClass) //自定义成员函数,寻找视类指针
{ CView* pView; POSITION pos=GetFirstViewPosition(); while(pos!=NULL)
{ pView=GetNextView(pos); if(!pView->IsKindOf(pClass)) break;
} if(!pView->IsKindOf(pClass))
{ AfxMessageBox(_T("Can not Locate the View!"));
return NULL;
} return pView;
}在文档类的按钮响应函数中写:
CTestView* pView=(CTestView*)GetView(RUNTIME_CLASS(CTestView));
pView->m_no; // m_no是CTestView中成员变量
运行后点击按钮后先是提示“Can not Locate the View!”,接着发生中断操作的错误,错误指向了
CTestDoc* CTestView::GetDocument() const // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTestDoc)));
return (CTestDoc*)m_pDocument;
}请教高手如何解决才能正确调用视类中的成员变量(函数)??
我在文档类中这样写:
CView* CTestDoc::GetView(CRuntimeClass* pClass) //自定义成员函数,寻找视类指针
{ CView* pView; POSITION pos=GetFirstViewPosition(); while(pos!=NULL)
{ pView=GetNextView(pos); if(!pView->IsKindOf(pClass)) break;
} if(!pView->IsKindOf(pClass))
{ AfxMessageBox(_T("Can not Locate the View!"));
return NULL;
} return pView;
}在文档类的按钮响应函数中写:
CTestView* pView=(CTestView*)GetView(RUNTIME_CLASS(CTestView));
pView->m_no; // m_no是CTestView中成员变量
运行后点击按钮后先是提示“Can not Locate the View!”,接着发生中断操作的错误,错误指向了
CTestDoc* CTestView::GetDocument() const // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTestDoc)));
return (CTestDoc*)m_pDocument;
}请教高手如何解决才能正确调用视类中的成员变量(函数)??
解决方案 »
- 不可复现问题如何处理
- USB口通信 读取数据
- 请高手帮助解答UINT ThreadProc_collection(LPVOID param)功能,怎么用
- 做计算机图形学或者网络编程近来帮小弟解答一下
- 各位大侠高手,救命啊,实在看8懂VC了,太难了,这个 CoCreateInstance 到底什么东西啊。。。。。。
- 我真是菜鸟,连这个都不知道,哪位大虾帮帮我?(仅有20分了)
- 有人知道,显示图片时(bitblt)WINDOWS会引发什么消息吗?
- 如何在已有VC程序中添加数据库功能
- 请问哪里可以搞到chm文件格式的详细资料?等急用,谢谢!!!
- 本论坛的回贴通知的问题?
- 怎样清空CMemFile对象的内容?
- HOOK API 后原来替换API函数的函数不能用
你看看这里是不是错了:
while(pos!=NULL)
{ pView=GetNextView(pos); if(!pView->IsKindOf(pClass)) \\应该是if(pView->IsKindOf(pClass))
break;
}
另:
CTestView* pView=(CTestView*)GetView(RUNTIME_CLASS(CTestView));
pView->m_no;
对指针操作最好都做下判断或断言什么的.虽然你里面判断了,但实际使用的地方并没有,所以.....