我建立了一个多文档程序MyEditor,视图类为滚动视图,然后又添加了一个新的视图CNewView,为CView类型,在前者的OnDraw()函数中语句:CMyEditorDoc* pDoc = GetDocument();没有错误,但在后者也就是CNewView的OnDraw()函数中该语句就是错误的,而应改为:
CMyEditorDoc* pDoc=(CMyEditorDoc*)GetDocument();
请问这是什么缘故?
CMyEditorDoc* pDoc=(CMyEditorDoc*)GetDocument();
请问这是什么缘故?
解决方案 »
- Debug Assertion Failed
- 请问我可以使用javascript实现connection point中的event吗?
- MFC模态对话框与主对话框之间数据交换
- 急!!!关于文件夹与文件的创建与写入!!!
- delphi在字符处理时比C慢多少(语言生成代码效率方面)
- 有没有什么方便的办法把一个工程的资源文件全部合成到另一个工程的资源文件里?
- 线程异常退出,为什么啊?
- vs2010 编写的ATL生成的dll文件不能被其他程序使用?
- CImageList::Copy()的问题.
- Google earth里添加的地面叠加层的图片如何做到和水域形状一样?
- 严重问题~~请大家帮我
- 请问有没有人能给出一个对程序篮条彻底控制的方法?
CEditorDoc* GetDocument();
这就是框架生成的,文档模板做的,呵呵,而你新建的类则没有!
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CTestSDIDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CTestSDIView));
AddDocTemplate(pDocTemplate);
这时候就会在View类中生成一个内联函数GetDocument();并且你可以看到View类没有包含DOC类的头文件。如果你要是将View类的头文件被其他的头文件包含以后就会出错,这时候你需要在View类的头文件中添加包含Doc类的头文件才能解决!