最近用MFC做一个小软件,SDI,插入了一个对话框资源,想在对话框加入控件响应函数,实现视图的客户区绘图

我在C**View类中定义了绘图函数Draw,在自定义的对话框类C**Dlg中接收数据,想要调用C**View类中的函数进行绘图,形式为:((CControlView*)... 我在C**View类中定义了绘图函数Draw,在自定义的对话框类C**Dlg中接收数据,想要调用C**View类中的函数进行绘图,形式为:
((CControlView*)(((CMainFrame*)(AfxGetApp()->m_pMainWnd))))->Draw();
但只要我在C**Dlg源文件中包含了头文件“C**View.h”,就会在“C**View.h"中报错,位置是 public:
CControlDoc* GetDocument() const;错误类型为:缺少“;”及类型标识符——貌似编译系统不认识此处的定义了。
我觉得是由于包含了头文件导致了重复定义,但怎么解决呢?
或者有没有更好的画图方法?
那位用过的指导指导啊。。。。。
开发环境是VS2010
展开
 我来答
归悦欣cf
2012-05-08 · TA获得超过1443个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1323万
展开全部
在使用到CControlView类的头文件里只是添加语句 class CControlView;然后在用到它的实现里包含CControlView头文件。
更多追问追答
追问
我在自定义的对话框类头文件里面里加了class CControlView;,然后在CControlView.h加了#include "LineDlg.h",编译就没报错了。。。
但我是想在LineDlg.cpp中用CControlView中的函数,还是用不了。。。
追答
你要在LineDlg.cpp文件中包含CControlView所在的头文件。
特立独行的喵Andy
2012-05-08 · TA获得超过119个赞
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:89.7万
展开全部
当只有一个view类的时候,或者只想获取当前活动的view类,这时可以采用这种方法。CListCtrlView* pView = (CListCtrlView*)pFrame->GetActiveView();
具体请参看我的这篇博客:
http://blog.csdn.net/bbdxf/article/details/7514716
追问
你提供一种获取View指针的方法,对么?
我将这段代码加到,我自定义的对话框类的控件响应函数中时(我需要在控件响应函数中调用View类的绘图函数在客户区作图),CListCtrlView* 这个指针无法识别??是否应该包含某个头文件?
CListCtrlView* 这是一个什么样的指针类型??
追答
不好意思,刚不小心弄丢了一句:
CMainFrame* pFrame=(CMainFrame*)AfxGetMainWnd();
CListCtrlView* pView = (CListCtrlView*)pFrame->GetActiveView();
你可以参看我给你推荐的那个博客,那一片介绍的很详细的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式