[MFC]父子对话框互调成员变量

16 篇文章 0 订阅

由于要用到非模态对话框做工具面板,需要子框调用父框的成员变量及成员函数,
先前使用过发送消息的方案,同期试用父指针方法没有成功实现,
此次,成功实现了两种指针方案,如下:
方案一:父框创建子框,并传递指针。
p_dlg_filter = new Cdlg_filter;
p_dlg_filter->Create(IDD_DIALOG_midfilter,NULL);
p_dlg_filter->ShowWindow(SW_SHOW);
p_dlg_filter->m_pmain = (void *)this;
首先,子框类中生命一个void *m_pmain的公共变量,父框创建子框时,将该指针指向自己;
cvmat2d.copyTo(((CdishdectDlg *)m_pmain)->cvmat2);
  (CdishdectDlg *)m_pmain)->Displaymat1();
然后,子框中使用该指针操作父框中的成员(成员变量cvmat2,成员函数displaymat1等)。


方案二:子框中直接创建指针继承(?)父框。
CdishdectDlg *pfilter1 = (CdishdectDlg *)GetParent();
pfilter1->cvmat1d.copyTo(cvmat2d);
pfilter1->Displaymat1();




直接声明父框指针继承父框,调用其成员变量及功能函数即可。


ps:文中:
CdishdectDlg---父框类名 
p_dlg_filter---父框中的子框类指针变量  


pps: 以上方法借鉴网络各家,若侵犯谁人自认为之版权,仅供笑尔~~~


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值