MFC如何从主窗口类向子窗口类传递成员变量

hao5di78 2015-01-12 11:06:43
小弟在做一个VS2010上的项目,需要将主窗口类中的成员变量传给子窗口类。试过几种方法,包括全局变量和GetParent()。全局变量因为变量数据很大,不太适合。GetParent()倒是可以在子窗口类里面调用主窗口成员函数,但是使用成员变量的时候,虽然编译通过,但运行有调试中断,程序大致如下:
CxxxDlg* pDlg = (CxxxDlg*)GetParent();
pDlg->m_dXX;
请问有遇到和解决过类似问题的朋友么?GetParent()方法问题出在哪儿,或者该如何从主窗口类向子窗口类传递成员变量?拜谢拜谢。
...全文
422 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hao5di78 2015-01-15
  • 打赏
  • 举报
回复
之前发现包含冲突,修改重编之后用GetParent确实可以,问题解决了。准备尝试在目标类当中保存一个数据指针成员变量的方法。感谢各位的帮助,结帖。
buyong 2015-01-13
  • 打赏
  • 举报
回复
引用 3 楼 hao5di78 的回复:
[quote=引用 1 楼 smilestone322 的回复:] GetParent() ok 的,记得变量必须是公有的,包含父对话框的头文件了吗
变量已经设置成公有的了,而且也包含了父窗口类的头文件,但问题依旧。。我发现VC6.0这么用没问题啊,但vs2010就是不行。。[/quote] 不可能吧,重编,然后看call stack
信阳毛尖 2015-01-13
  • 打赏
  • 举报
回复
这种逻辑其实是很简单的,不就是数据传递嘛,只需要在目标类当中保存一个数据指针成员变量,让它指向源数据即可 如何指向源数据就属(类成员)变量赋值的问题
smilestone322 2015-01-12
  • 打赏
  • 举报
回复
GetParent() ok 的,记得变量必须是公有的,包含父对话框的头文件了吗
likfeng 2015-01-12
  • 打赏
  • 举报
回复
主窗口类的指针传给子窗口,子窗口通过主窗口类的指针访问其成员变量
hao5di78 2015-01-12
  • 打赏
  • 举报
回复
引用 2 楼 bojie5744 的回复:
主窗口保存子窗口窗口句柄或者窗口类指针,最后通过SendMessage/PostMessage发送消息 还有一个偷懒的方式,使用定时器
sendmessage 或 定时器 的方法具体怎么用的?求指教
hao5di78 2015-01-12
  • 打赏
  • 举报
回复
引用 1 楼 smilestone322 的回复:
GetParent() ok 的,记得变量必须是公有的,包含父对话框的头文件了吗
变量已经设置成公有的了,而且也包含了父窗口类的头文件,但问题依旧。。我发现VC6.0这么用没问题啊,但vs2010就是不行。。
  • 打赏
  • 举报
回复
主窗口保存子窗口窗口句柄或者窗口类指针,最后通过SendMessage/PostMessage发送消息 还有一个偷懒的方式,使用定时器

16,472

社区成员

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

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

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