子窗体dlg2如何向子窗体dlg1中 listbox控件赋值

子窗体dlg2如何向子窗体dlg1中 listbox控件赋值
m_tab.AddPage(TEXT("系统设置"), &dlg1, IDD_DIALOG1);
m_tab.AddPage(TEXT("系统管理"), &dlg2, IDD_DIALOG2);
m_tab.Show();
dlg1.IDC_LB1.AddString(_T("2"));

img

窗体也是类
跨窗体操作其实就是类间传值问题
思路无非那么几种
1.公共类里的静态全局变量传值,窗体2随时写入,窗体1轮询取值(不推荐)
2.把窗体1种的控件public出来,并在打开窗体2的时候传入窗体1的实例,窗体2直接操作(不推荐)
3.窗体2如果是窗体1打开的模态窗体,那么打开时窗体1的代码会被阻塞,窗体2可以在自己类里放全局变量,当窗体关闭时窗体1的代码继续执行,此时取值
4.窗体1定义委托和事件,窗体2注册事件,执行,同时传值

思路在此:https://blog.csdn.net/qq_37271216/article/details/103931770

1.公共类里的静态全局变量传值,窗体2随时写入,窗体1轮询取值(不推荐)
2.把窗体1种的控件public出来,并在打开窗体2的时候传入窗体1的实例,窗体2直接操作(不推荐)
3.窗体2如果是窗体1打开的模态窗体,那么打开时窗体1的代码会被阻塞,窗体2可以在自己类里放全局变量,当窗体关闭时窗体1的代码继续执行,此时取值
4.窗体1定义委托和事件,窗体2注册事件,执行,同时传值

listbox控件指针全局变量。

在主窗体中将主窗体类对象this传给子窗体dlg1和dlg2,然后就可以在dlg2中通过主窗体对象设置dlg1中的控件内容了