首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于模态对话框的有关问题!

2012-07-15 
关于模态对话框的问题!!我在主对话框上设置了一个按钮,当按下按钮时,弹出模态对话框,在模态对话框中设置完

关于模态对话框的问题!!

我在主对话框上设置了一个按钮,当按下按钮时,弹出模态对话框,在模态对话框中设置完毕后返回主对话框,怎样使得我再


按下按钮后,弹出的模态对话框还是我前面的设置???

[解决办法]
设置后要保存,可以保存到全局变量,文本,或数据库。
子对话框打开时,在init中载入已经保存的数据。
[解决办法]
最简单就是写配置文件,设置完成后写到配置文件里面去,下次在打开的时候从配置文件中读取相关信息来初始化界面显示;
还有直接将相关信息保存在内存中,重新打开窗口后,从内存里面读取去初始化界面显示。
[解决办法]
也可以把要记录的值设为public,在对话框构造函数与OnInitDialog函数中,注意处理。
if(a!=null){......}
else
{
// 初始化操作
}
[解决办法]
A为主对话框,B为打开的表单对话框。
1. 定义一个CModel
2. 在A对话框上添加一个成员变量 CModel* m_model
3. 在B对话框上也添加一个成员变量 CModel* m_model
4. 子A对话框上 的构造方法与析构方法内
CA2BDlg::CA2BDlg(CWnd* pParent /*=NULL*/)
: CDialog(CA2BDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CA2BDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_model = new CModel(); //创建
}


CA2BDlg::~CA2BDlg()
{
if(m_model!=NULL)
{
delete m_model; //释放
m_model=NULL;
}
}

4. 在A对话框上 打开B对话框时候
void CA2BDlg::OnBtnDlg2() 
{
// TODO: Add your control notification handler code here
CDlgB dlgB;
dlgB.m_model=m_model;
dlgB.DoModal();
}

5. 在B对话框的保存按钮上
void CDlgB::OnOK() 
{
// TODO: Add extra validation here
UpdateData(TRUE);
m_model->SetCode(m_code);
m_model->SetName(m_name);
CDialog::OnOK();
}

[解决办法]
1:写个配置文件,每次打开读取一次;
2:写个初始化函数,每次打开将数值初始化一次。

热点排行