mfc中主窗口有多个TAB子窗口 如何在一个子窗口1中调用另一个窗口2的函数(用于在1中修改2的数据)

mfc中主窗口有多个TAB子窗口如何在一个子窗口1中调用另一个窗口2的函数a()(用于在1中修改2的数据)CDialog1中如此调用:错误CDialog2dldl.a()... mfc中主窗口有多个TAB子窗口 如何在一个子窗口1中调用另一个窗口2的函数a()(用于在1中修改2的数据)

CDialog1中如此调用:错误

CDialog2 dl

dl.a();

编译 连接都没问题 就是运行操作后error

是不是要获取2的窗口指针?还要怎么操作才可以解决?
请各位给出具体代码 不胜感激
展开
 我来答
烂笔小心
2010-10-19 · TA获得超过793个赞
知道小有建树答主
回答量:290
采纳率:0%
帮助的人:377万
展开全部
一、如果传量的话可以用全局函数或者消息来传,在焦点回到窗口1的时候再updatedata(false);
二、如果要立刻修改2显示的数据(如编辑框显示的数据),可以使用全局指针变量来保存窗口2的this指针,在窗口1里调用窗口2的更新函数。
如://窗口2
CWnd2* pGOLCWnd2;
{//某函数内把this传给pGOLCWnd2
pGOLCWnd2=this;
}
CWnd2::updateWnd2()//窗口2的更新函数
{……
……
updatedata(ture);

……
updatedata(fasle);
}

//窗口1
//包含窗口1头文件
extern CWnd2* pGOLCWnd2;
要更新的时候就用pGOLCWnd2->updateWnd2;

应该是可以的,如果不要急着更新的话,建议用方法一;如果要更新的话可以用方法二,它可以更新其他父子窗口。还有个方法就是用进程,但由于进程可以访问任意位置,很容易出错
江半仙3e6e
2010-10-19 · TA获得超过4890个赞
知道大有可为答主
回答量:2251
采纳率:0%
帮助的人:1541万
展开全部
A窗口给B窗口发送消息,把需要更改的参数发过去。
A中:
::PostMessage(hWnd,WM_B_PARAM_CHANGED,myParam1,myParam2);//hWnd是B的句柄;两个参数就是需要更改的参数
然后在B中对该消息进行响应,进行相关操作即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiugeen
2010-10-19 · TA获得超过210个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:173万
展开全部
你这个是重新建了一个窗口对象了,要控制2窗口,的找到主窗口的对象(句柄),然后通过这个句柄中的创建窗口2的对象的来调用相应函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
四念住
2010-10-20 · TA获得超过270个赞
知道小有建树答主
回答量:587
采纳率:0%
帮助的人:239万
展开全部
我喜欢交叉类. 相互引用.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式