读书人

对话框间数据显示有关问题

发布时间: 2012-03-14 12:01:12 作者: rapoo

对话框间数据显示问题
点击主对话框的某按钮,会先收到一串数据,假设解析后得到1、2、3、4、5,然后弹出一个模态对话框,我想把上面得到的数据(即1、2、3、4、5)分别写入到新对话框的ListBox控件的5行中,应该怎么做呢?

[解决办法]
先设计一个对话框,上面放一个listbox

设计一个类关联到对话框资源

需要用它的时候就domodal把它弹出来呗。

你想访问listbox就是对话框的指针访问


[解决办法]
把你得到的数据保存起来,然后再传给新的对话框就好了
[解决办法]
两种方法:
1、在新的弹出对话框中定义一个结构体或是变量,在调用DoModel()之前就吧值赋值过去
2、通过消息传递过去也可以
[解决办法]
假设你解析的值放在stl集合里面,list\Vector等都行,如果Vector m_Vector;

CDlgAfter dlg //假设这个对话框是被传的那个对话框
dlg.SetDateArray(m_Vector); 传给被传的那个对话框

BOOL CDlgAfter::OnInitDialog()
{
//此时取出集合里面的数据,然后填充到控件里面

}
[解决办法]
vector.add(1);
vector.add(2);
vector.add(3);
CMyDialog dlg; //CMyDialog里有个成员变量m_vecData;
dlg.SetDateArray(vector);//自己实现这个函数,把vector里的值填到m_vecData里去;
dlg.domodal();

BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog()
//实现m_vecData里的值设到list里去。
return TRUE;
}
[解决办法]

探讨
引用:

两种方法:
1、在新的弹出对话框中定义一个结构体或是变量,在调用DoModel()之前就吧值赋值过去
2、通过消息传递过去也可以

DoModal()产生模态对话框,好像在这个函数前不能把值赋过去吧?我试过了会出错,非模态对话框倒是可以,但是我需要弹出子对话框后,父对话框不能再进行操作,只显示界面,应该怎么做呢?

[解决办法]
用全局变量或者临时文件保存。

读书人网 >VC/MFC

热点推荐