假如我在一个对话框中想存取在Docment类中的变量 该怎么做阿?如果想存取View类中的变量 又该怎么办啊?弹出对话框的父窗口一般是什么阿?为什么我用下面的语句:

CStudentSet* m_pSetS=(CDataProjectView*)GetParent()->GetDocument()->GetStudentSet();
提示我CDataProjectView未声明但是 我一在上面加入#include "DataProjectView.h" 就会有很多莫名其妙的问题出来?VC中关于头文件的include有什么约定啊?我搞的头都昏了!

解决方案 »

  1.   

    你检查:
     1.  include  应在.CPP中 不是在.H中
     2.  拼写是否错误
     3.    
    GetDocument() 返回的是文档指针,怎么会是视图指针?你要获得视图指针不必通过文档获得视图
      

  2.   

    弹出对话框的父窗口是程序中调用让这个对话框弹出的类。
    你试试不用#include "DataProjectView.h"
    而用Class DataProjectView;
      

  3.   

    提议:
    我想你一定是在响应菜单之类的消息(Document或View类中处理)时弹出对话框,
    其实你可以在Domodal之前把
    Document中的Dataset传给你的CDialog类,
    这样就不存在文件包含的问题:
    做法:
    1,CStudentSet* m_pSetS 定义为你的Dialog的成员变量;
    2,在Domodal()之前赋值:
    ××Dialog.m_pSetS == (CDataProjectView*)GetDocument()->GetStudentSet();
      

  4.   

    TO yanzai8848 
        我采用了你的方法,现在问题是解决了 
        但是我想问一下 为什么我在include头文件时经常遇到一些很奇怪的问题
        你说“你一定是在响应菜单之类的消息(Document或View类中处理)时弹出对话框,”,那么在处理这种问题时,要注意些什么呢?     谢谢