窗口间变量传递

虽然没碰到过多少,至少现在遇到了以下几种变量传递的情况:1。主窗口向子窗口传递;2。子窗口向主窗口传递;3。子窗口间互相传递;下面分别介绍。

一、主窗口向子窗口传递变量

     1、 在主窗口中如是全局变量,可在子窗口中直接用extern声明而在子窗口中直接用,前提是必须包含主窗口的头文件。例如:主窗口CMainDlg,子窗口CSub,在主窗口中定义全局变量int temp;temp = 22;,可在CSub中直接用extern int temp;然后随便自己怎么去用.

     2、在主窗口中如是成员变量或成员函数,则可以直接用CMainDlg *parent = (CMainDlg*)GetParent();然后parent->*******就可以了。

     3、CMainDlg创建CSub,CSub创建CSubSub,则在CSubSub中也可以用CMainDlg *parent = (CMainDlg*)GetParent();来调用CMainDlg中的函数与变量,方法同2。

二、子窗口向主窗口传递变量

    CSub dlg;  dlg.m_temp = &m_main_temp;  dlg.DoModal();   其中m_temp是CSub中定义的public的指针,m_main_temp是CMainDlg中public的成员变量,它们的类型要保持一致。不过这种传递方法是在子窗口关闭后变量值才能传到主窗口中。

三、子窗口间变量传递

      如是全局变量,可直接用extern来声明,方法和上面的一样。如果不是全局变量,则需要得到相应对话框的指针或句柄,然后用指针或句柄去操作其中的变量或函数。如

HWND hwnd;
hwnd=::FindWindow(NULL, "关机或重启");     //找到对话框标题为“关机或重启”的对话框
CWnd *p=FromHandle(hwnd);
p->***************;

其实传递变量的方法很多,可以通过发送消息;可以在子窗口中保存主窗口句柄,利用此句柄访问;可以在主窗口中保存子窗口句柄,主窗口调用此句柄方法也就是子窗口的put方法传递;可以在子窗口的构造函数中传递一个参数,在主窗口构建子窗口的时候传进去。这里只介绍了其中的一点点,有需要的朋友可以自己去研究,呵呵……另外附上几个我以前用MFC时发的帖子,希望对大家有所帮助。

http://community.csdn.net/Expert/topic/5369/5369722.xml?temp=.3070032

http://community.csdn.net/Expert/topic/5421/5421410.xml?temp=.741482

http://community.csdn.net/Expert/topic/5421/5421598.xml?temp=.6908838

http://community.csdn.net/Expert/topic/5376/5376157.xml?temp=.8486139

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

miaoshengwu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值