在MFC中,做了一个界面,有Tab Control控件,其中包含了几个页面,都显示成功了。每个页面都定义了相应的对话框类,但怎么在文档类中无法调用页面对话框的中,下面是点简单的程序: 
void CKssystemDoc::OnPropertySim() 

// TODO: Add your command handler code here 
CPublicDlg Property;//大对话框,包含其中的Tab Control控件 
CTabVariogram Variogram1;//页面对话框1 
CKrigAndSgsimTabOther KrigSgsim;//页面对话框2 Variogram1.m_VariogramDip=10; 
Property.DoModal(); 
        //程序可以正常显示,其中Property中的变量可以调用,但是Variogram1和KrigSgsim两个页面的对话框中的变量不能调用,也不能在这里赋值,不知道问什么,怎么解决?望高人指点!! }

解决方案 »

  1.   

    在文档类中定义一个页面1对话框的变量pVardlg; 页面2对话框的变量 pKridlg;都是指针类型的
    程序开始的时候都对这些对话框创建
    在各自对话框的初始化函数中得到文档指针pDoc
    然后利用pDoc->pCardlg =this;
           pDoc->pKridlg = this;
    对各自的对话框指针赋值
    这样就可以通过pDoc->pCardlg和pDoc->pKridlg来调用变量了
      

  2.   

    你加的方法或者属性是public? protected? or private?
      

  3.   

    一楼的是不是有点多此一举的嫌疑的?
    CTabVariogram Variogram1定义的时候Variogram1中不是有本身this指针么。
      

  4.   

    GetDocument()函数只有视图类里才有啊  怎么在对话框中用啊
      

  5.   

    一楼的“pDoc->pCardlg和pDoc->pKridlg来调用变量"
    好像无法显示具体的变量,在文档类中调用pKriglg中的变量应该不用pDoc吧
    还有pDoc->pCardlg =this这个事什么意思啊?3Q