100分求助!

dwgandey 2003-05-05 09:14:42
在MFC中已经有一个主对话框A,再新建一个对话框B,
B从属于A,怎样才能在B中调用A的函数.
有解决者100分相赠!
...全文
14 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shilong 2003-05-06
  • 打赏
  • 举报
回复
up
season11 2003-05-05
  • 打赏
  • 举报
回复
我的解决方案:
在B中加入:
public:
CDialog pDlgParent;

A中:
CBdlg dlg;
dlg.pDlgParent = this;
……
//显示对话框B
……

然后你就可以通过B::pDlgParent来访问A的数据成员!
shaolunyuan 2003-05-05
  • 打赏
  • 举报
回复
呵呵,下次想着 自己 up

allenhai1980 2003-05-05
  • 打赏
  • 举报
回复
B从属于A??
没说清楚。
若B仅仅是A的一个弹出界面,如jnxulei(石头)所述。
shilong 2003-05-05
  • 打赏
  • 举报
回复
pdlg=GetParent()可能要换成pdlg=(CADlg*)GetParent();
shilong 2003-05-05
  • 打赏
  • 举报
回复
子窗口(CBDlg)调用父窗口(CADlg)可以这样

在bdlg.cpp中include "adlg.h"

在调用的时候
CADlg *pdlg;
pdlg=GetParent();
然后用pdlg->

就可以访问ADlg的成员函数和成员变量了
jruv 2003-05-05
  • 打赏
  • 举报
回复
更正:上述“然后在B中定义一个A的全局变量:“
应改为“然后在B类中定义一个成员变量为A的对象指针:”
jruv 2003-05-05
  • 打赏
  • 举报
回复
首先将A中你想调用的函数设成public类型
如:
public:
void xxFunc();
然后在B中定义一个A的全局变量:
public:
CADlg * pADlg;

在A中调用B时,先将pDlg赋值.
CBdlg dlg;
dlg.m_pADlg = this;
dlg.DoModal();
则在B中可以通过m_pADlg调用A的函数:
m_pADlg.xxFunc();
丁淇石头 2003-05-05
  • 打赏
  • 举报
回复
在B中定义一个A的全局变量:CADlg * pADlg;
在A中调用B时,先将pDlg赋值.
CBdlg dlg;
dlg.m_pADlg = this;
dlg.DoModal();
则在B中可以通过m_pADlg调用A的函数。
guoxiny 2003-05-05
  • 打赏
  • 举报
回复
对呀,CDialogB : public CDialogA

OK!
shaolunyuan 2003-05-05
  • 打赏
  • 举报
回复
你的意思 ,a 是 b 的基类?

那样的话,直接调用不就行了吗 ?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧