问个简单问题
我有个在我对话框类
CDTVPostLOGONDlg 
添加了一个成员
CDTVTree m_DTVTree;
其中CDTVTree是我定义的类,当然我在CDTVPostLOGONDlg 加上
#include "DTVTree.h"我在CDTVPostLOGONDlg 有个成员函数
void CloseLight()我现在想在CDTVTree的Onclick事件上调用CDTVPostLOGONDlg的这个CloseLight函数于是在事件处理函数上写
((CDTVPostLOGONDlg*)GetParentOwner())->CloseLights();
但是编译时候报错无法发现类型CDTVPostLOGONDlg,于是我在CDTVTree添加#include 
"DTVPostLOGONDlg.h",编译
这个时候在DTVPostLOGONDlg.h中报错,无法发现类型CDTVTree
我添加
class CDTVTree;
还是不行,请问为什么,如何解决这个问题

解决方案 »

  1.   

    把include  "DTVPostLOGONDlg.h",放在cpp文件头上
    就可以了
      

  2.   

    你这样在2个头文件互相包含对方当然出错,这种情况你可以在DTVPostLOGONDlg.h中去掉#include "DTVTree.h",而加上extern class CDTVTree
      

  3.   

    extern class CDTVTree
    恐怕是不行的
    因为在CDTVPostLOGONDlg 
    定义了一个
    CDTVTree对象光光声明是不行的
      

  4.   

    可以声明个指针嘛,再在CDTVPostLOGONDlg 的构造函数new不就行了
      

  5.   

    让控件给对话框发送消息 让对话框自己执行CloseLights()函数
      

  6.   

    楼上的也是一种方法,我的那种方法笨了点,主要是使它不会出现类重复定义的错误。补充一句,还要在cpp文件中加入DTVPostLOGONDlg.h"(一般系统默认了加了的),不然new也会出错了;
      

  7.   

    难道两个之间都互相有对方的对象么?不然就可以extern啊