请问 主窗口如何控制子窗口内的控件

LearnHome 2014-07-26 03:16:46
请问 主窗口如何控制子窗口内的控件
比如主窗口A,有子窗口B,子窗口C,
在A里有 按钮ABUT
在B里有 文本控件T
在C里有 按钮CBUT

请问
在 A 里用 按钮ABUT 怎么修改 B里有 文本控件T 的内容,


本人菜鸟,希望高手们能给出代码

...全文
346 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
LearnHome 2014-08-02
  • 打赏
  • 举报
回复
引用 11 楼 lx624909677 的回复:
或者你直接用发送消息来做,写个回调函数来刷新数据就行
引用 12 楼 guyuguang8628391 的回复:
对,用消息来做。sendmessage。
引用 13 楼 jennyvenus 的回复:
子窗口将自己的hwnd给一个全局变量,然后主窗口向这个全局变量发消息。
请问几位高手,能把具体实现的代码说一下吗?我很新,
图灵转世 2014-07-28
  • 打赏
  • 举报
回复
对,用消息来做。sendmessage。
lx624909677 2014-07-28
  • 打赏
  • 举报
回复
或者你直接用发送消息来做,写个回调函数来刷新数据就行
lx624909677 2014-07-28
  • 打赏
  • 举报
回复
引用 7 楼 LearnHome 的回复:
[quote=引用 6 楼 lx624909677 的回复:] [quote=引用 4 楼 LearnHome 的回复:] [quote=引用 3 楼 lx624909677 的回复:] 创建一个子对话框的类,然后就是类之前数据的传递了
请问有具体的代码吗?我是新手不太懂[/quote] 比如有个子对话框,他的类名叫NewDlg,在父对话框中添加一个该类的对象,NewDlg dlg,然后用这个dlg去访问这个子对话框中的public变量就可以[/quote] 比如 子对话框 的变量 txt 请问代码是不是: NewDlg dlg; dlg.txt="123"; 这样不能实时更新到控件里去,子对话框文本控件不能马上显示。请问有直接显示的代码吗? [/quote] 你这样只能是修改那个变量的数值,要实时更新还得UpDateData一下
用户 昵称 2014-07-28
  • 打赏
  • 举报
回复
子窗口将自己的hwnd给一个全局变量,然后主窗口向这个全局变量发消息。
lx624909677 2014-07-27
  • 打赏
  • 举报
回复
引用 4 楼 LearnHome 的回复:
[quote=引用 3 楼 lx624909677 的回复:] 创建一个子对话框的类,然后就是类之前数据的传递了
请问有具体的代码吗?我是新手不太懂[/quote] 比如有个子对话框,他的类名叫NewDlg,在父对话框中添加一个该类的对象,NewDlg dlg,然后用这个dlg去访问这个子对话框中的public变量就可以
昆仑道长 2014-07-27
  • 打赏
  • 举报
回复
子窗口内的控件本质上也是一个窗口啦,因此主窗口要控制子窗口内的控件只要拥有这个控件的HWND窗口句柄就可以了,每次对这个控件进行操作之前判断一下它是否是有效窗口句柄,也即和INVALID_HANDLE_VALUE进行比较。有了有效的控件窗口句柄,你可以随心所欲控制它。MFC的窗口类只不过是对HWND 的一层包装而已。这种返璞归真的做法可以免去对类对象的作用域的一些麻烦事。记住窗口句柄由windows内部维护,这样你会很省事的~~
Evankaka 2014-07-27
  • 打赏
  • 举报
回复
我知道怎么弄,但是说不清楚。大概就是在A里有 按钮ABUT按下时,比如说设cstring aa="123"; 然后打开B前, 文本控件T控件有个相关的 文本控件变量,用aa="123"去初始化B文本控件变量,然后打开B对话框~~
LearnHome 2014-07-27
  • 打赏
  • 举报
回复
引用 6 楼 lx624909677 的回复:
[quote=引用 4 楼 LearnHome 的回复:] [quote=引用 3 楼 lx624909677 的回复:] 创建一个子对话框的类,然后就是类之前数据的传递了
请问有具体的代码吗?我是新手不太懂[/quote] 比如有个子对话框,他的类名叫NewDlg,在父对话框中添加一个该类的对象,NewDlg dlg,然后用这个dlg去访问这个子对话框中的public变量就可以[/quote] 比如 子对话框 的变量 txt 请问代码是不是: NewDlg dlg; dlg.txt="123"; 这样不能实时更新到控件里去,子对话框文本控件不能马上显示。请问有直接显示的代码吗?
LearnHome 2014-07-26
  • 打赏
  • 举报
回复
引用 1 楼 sxqinge 的回复:
不要尝试去访问另外一个窗口的控件,这很危险的,如果一定要这样做的话,可以再A里面声明B的对象(当然也要包含它的头文件): //A.CPP #include "B.h" B b; b.编辑框值
我把子窗口的控件变量,赋值好了,但子窗口没有显示。 请问高手怎么办
LearnHome 2014-07-26
  • 打赏
  • 举报
回复
引用 3 楼 lx624909677 的回复:
创建一个子对话框的类,然后就是类之前数据的传递了
请问有具体的代码吗?我是新手不太懂
lx624909677 2014-07-26
  • 打赏
  • 举报
回复
创建一个子对话框的类,然后就是类之前数据的传递了
LearnHome 2014-07-26
  • 打赏
  • 举报
回复
引用 1 楼 sxqinge 的回复:
不要尝试去访问另外一个窗口的控件,这很危险的,如果一定要这样做的话,可以再A里面声明B的对象(当然也要包含它的头文件): //A.CPP #include "B.h" B b; b.编辑框值
B b; b.编辑框值 请问这个代码怎么写,我刚接触VC 假设BDlg ,B的文本 IDC_TXT 另外为什么说这样做很危险?
sxqinge 2014-07-26
  • 打赏
  • 举报
回复
不要尝试去访问另外一个窗口的控件,这很危险的,如果一定要这样做的话,可以再A里面声明B的对象(当然也要包含它的头文件): //A.CPP #include "B.h" B b; b.编辑框值

16,548

社区成员

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

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

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