一个CView类指针传递的问题,请高手指教!

南飞雁 2002-05-14 06:38:36
我用vc创建了一个SDI窗体,然后增加了一个对话框,对应的类是CAaDlg,然后我想在类CAaDlg里面访问SDI的CTestView类的一个成员变量。我是这样做的,我在CTestView类的CPP文件里面首先#include "AaDlg.h",然后在CTestView类的一个菜单函数里面声明一个变量CAaDlg dlg(this);我将CView类的this指针传给对话框类。我在CAaDlg类的头文件里面首先用class CTestView;声明视图类,然后在CAaDlg里面声明一个CTestView类的指针CTestView* m_pView;然后我在AaDlg.h文件的CAaDlg的构造函数里面执行m_pView = (CTestView*)pParent;到目前为止,编译没有出错,但是当我在CAaDlg的另外一个函数里面使用m_pView的变量时却出现了不认识编译错误CTestView的错误,请各位指教!
...全文
32 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
南飞雁 2002-05-14
成功了,多谢各位,散分!
  • 打赏
  • 举报
回复
南飞雁 2002-05-14
那样也不行,就会出现在CTestView的GetDocument()那里有错误,但那是不可能的,我希望你能够亲自试验一下。
  • 打赏
  • 举报
回复
webber84 2002-05-14
你在CAaDlg类的头文件里用class CTestView声明视图类,只是告诉编译器这个类的存在,所以当你只使用CTestView的指针时,没有问题;但是当你用这个指针来调用CTestView的成员函数时,就会出错了,因为编译器并不能根据你的声明来确定CTestView到底有哪些成员函数,所心你须把CTestView的定义告诉编译器。
解决办法:像楼上所说的,在AaDlg.cpp中包含testview.h的头文件,同时别忘了相应doc类的头文件,因为view类里有一个GetDocument要用到doc类的指针。

  • 打赏
  • 举报
回复
wened 2002-05-14
一般视类是不能做为对话框的父窗口的,不信你在你那个对话框里调用GetParent,得到的指针应该与视类的指针不同的,
对于要在对话框里调用视图指针,可以直接把视图指针赋给对话框里的视图指针变量,这样就不会出错
  • 打赏
  • 举报
回复
opentuxedo 2002-05-14
别忘了把你的“另外一个函数”放在Cpp文件中
  • 打赏
  • 举报
回复
opentuxedo 2002-05-14
在AaDlg.cpp中包含testview.h
  • 打赏
  • 举报
回复
发帖
VC/MFC

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2002-05-14 06:38
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……