CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

子对话框怎样调用父对话框的公有成员变量?

楼主microzhe(大笨鸟)2004-05-04 12:24:32 在 VC/MFC / 基础类 提问

我写了个基于对话框的MFC程序,在主对话框窗口中点击某个按钮就会new出个新的对话框窗口,那么这个对话框怎样调用主对话框中的公有成员变量?  
   
  比如:  
  class   CMyDlg   :   public   CDialog       //主对话窗口  
  {  
          ......  
  public:  
              int   m_MyDlgA;  
        ......  
  };  
   
  class   CSonDlg   :   public   CDialog  
  {  
        ......  
   
  public:  
              int   test();  
   
        ......  
   
  };  
   
  在CMyDlg产生的窗口中点一按钮就new出一个CSonDlg的窗口。那么在test()中怎样调用m_MyDlgA   ?  
   
  我是在test()中是这样写的:  
  int   test()  
  {  
          .....  
            int   a;  
            a=*this->GetParent()->m_MyDlgA;   //请问这样对吗?不对的话改如何?  
            ....  
   
  }  
   
  谢谢您百忙中指教。 问题点数:20、回复次数:6Top

1 楼countryboy(沉淀)回复于 2004-05-04 12:26:55 得分 8

在CSonDlg中要先声明m_MyDlgA变量,就是包含CMyDlg   的头文件~~~!!!就可以了Top

2 楼kuangjingbo(正在学习windows)回复于 2004-05-04 12:33:25 得分 2

我觉的你的办法可以呀!Top

3 楼microzhe(大笨鸟)回复于 2004-05-04 12:41:18 得分 0

已经包括了CMyDlg的头文件mydlg.h了,可是编译的时候说那句  
   
  a=*this->GetParent()->m_MyDlgA  
  'm_MyDlgA'   is   not   a   member   of   'CWnd'  
   
   
  使用强制转换可以吗?比如这样:  
  a=((CMyDlg*)*this->GetParent())->m_MyDlgA   ?  
   
  可又说:  
  'type   cast'   :   cannot   convert   from   'class   CWnd'   to   'class   CMyDlg   *'  
   
  该如何解?或者有什么更好的办法?  
   
  不过还是要谢谢   countryboy(阿泰)Top

4 楼microzhe(大笨鸟)回复于 2004-05-04 12:45:21 得分 0

CWnd*   GetParent(   )   const;  
   
  这是GetParent的原型,返回的是   CWnd*   ,得想办法转成   CMyDlg*   怎转?我试了用强制(如上)转换行不通?Top

5 楼ygzdev(TheEcho)回复于 2004-05-04 13:55:06 得分 10

给test函数加个参数不就可以了吗?int   test(int   a);调用的时候给把m_MyDlgA付给他不就可以了吗?或者CSonDlg加个构造函数CSonDlg(CWnd   *pParentWnd)不也可以吗?Top

6 楼microzhe(大笨鸟)回复于 2004-05-04 13:58:41 得分 0

呵呵,我试试吧,谢谢大家~Top

相关问题

  • 子对话框调用主对话框变量
  • 如何在一个对话框里调用另一个对话框里的editbox里已输入的变量?
  • 怎么调用对话框?
  • 如何调用对话框
  • 关于线程中调用生成该线程的对话框成员函数或成员变量的问题!
  • [求助]如何在对话框类内调用视图cview类中的函数和变量
  • 求!!在基于对话框的程序中,在被调用窗口中获得全局变量和调用窗口句柄的方法
  • 如何调用通用对话框中保存的对话框
  • 在对话框程序中如何调用对话框?
  • :) 对话框中变量的引用

关键词

  • 对话框
  • mydlga
  • csondlg
  • 调用
  • cmydlg
  • 变量
  • getparent
  • cwnd
  • test

得分解答快速导航

  • 帖主:microzhe
  • countryboy
  • kuangjingbo
  • ygzdev

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo