MFC中怎么在一个对话框中访问另一个对话框的控件变量

MFC中如何在一个对话框中访问另一个对话框的控件变量
程序是基于对话框的。有两个对话框CDialogRTTemp(IDD_DIALOG_RT_TEMP)和CDialogSettings(IDD_DIALOG_SETTINGS)。我在CDialogRTTemp中放了一个MSComm控件,控件变量m_CommCtrl.现在要求在对话框IDD_DIALOG_SETTINGS中进行MSComm控件的初始化设置。我在CDialogSettings的成员函数中使用下列代码访问变量m_CommCtrl,程序直接崩溃.
CDialogRTTemp* pdlg = (CDialogRTTemp*)GetDlgItem(IDD_DIALOG_RT_TEMP);
pdlg->m_CommCtrl.……
..........
请教……谢谢!
------解决方案--------------------
我只能说晕了。
CDialogSettings对话框设置的通信参数,你应该用一个数据结构进行保存。简单点,这个数据结构你可以放在App类中,然后CDialogSettings对话框对这个结构中的参数进行修改。
CDialogRTTemp类初始化时,从App类中读取通信参数结构中的数据就可以了。

------解决方案--------------------
通过函数来访问,这个不会出错。直接访问,破坏封装,更重要的是涉及到窗口稍不留意就蹦了
------解决方案--------------------
引用:
Quote: 引用:

通过函数来访问,这个不会出错。直接访问,破坏封装,更重要的是涉及到窗口稍不留意就蹦了


能说的详细一点吗?谢谢

为CDialogSettings添加一个成员变量CDialogRTTemp* dlg;
添加一个方法void Bind(CDialogRTTemp* d){  dlg = d;  }
在成员方法中 dlg->Init();
这个Init方法,给CDialogRTTemp加这个方法,在Init中初始化MSComm即可

其实这很简单,注意一点,一定要在CDialogRTTemp创建了的情况下去初始化MSComm
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

通过函数来访问,这个不会出错。直接访问,破坏封装,更重要的是涉及到窗口稍不留意就蹦了


能说的详细一点吗?谢谢

为CDialogSettings添加一个成员变量CDialogRTTemp* dlg;
添加一个方法void Bind(CDialogRTTemp* d){  dlg = d;  }
在成员方法中 dlg->Init();
这个Init方法,给CDialogRTTemp加这个方法,在Init中初始化MSComm即可

其实这很简单,注意一点,一定要在CDialogRTTemp创建了的情况下去初始化MSComm


我是想在CDialogSettings对话框中点击一个按钮然后初始化MSComm控件……
您的代码我这样理解,不知道对不对?
CDialogSettings的方法Bind的参数d,应该传递给它对话框CDialogRTTemp的实例的指针。点击按钮的时候,我可以调用dlg->init(),执行init函数,初始化MSComm控件?

right