没人理我?再问!!
http://community.csdn.net/Expert/topic/3232/3232741.xml?temp=.1769373
我始终都不明白,i增加的时候应该写下一条呀,怎么会覆盖呢?(大家不要嫌我烦,求知识!)
问题点数:20、回复次数:6Top
1 楼happyparrot(快乐鹦鹉)回复于 2004-08-02 14:52:12 得分 10
不要妄图在模式对话框DoModal前,修改对话框中控件的任何内容!
将你要修改的信息在DoModal前,先传递给对话框实例。比如你最终的目标是要将一个字符串显示到某个控件上,那么在对话框中定义一个字符串成员变量,然后这样:
CMyDlg dlg;
dlg.m_str = str;就将str传递到对话框的m_str中。
然后在对话框的OnInitDialog函数中,将m_str显示到控件中才可以。
如果需要传递其它方式的数据,都如上处理。Top
2 楼budongjiuwen(不懂就问)回复于 2004-08-02 15:08:38 得分 0
如果照你的说法,我想插两条信息,就必须在初始化的时候
m_pListCtrl.InsertItem(i,m_str1);
m_pListCtrl.InsertItem(i,m_str2);
然后分别在DoModal之前给m_str1和m_str2赋值呢?
Top
3 楼happyparrot(快乐鹦鹉)回复于 2004-08-02 15:24:09 得分 0
对头!
如果字符串很多,可以用CStringArray传递Top
4 楼lixiaosan(小三)回复于 2004-08-02 15:37:44 得分 10
在对话框2没有显示前,你不能对其上面的控件直接进行操作。。这个道理很明显吧。。
就像一个房间的门没有打开,你是不能偷吃房间里面的东西的。^_^
给你一个例子吧。
作用是在对话框2显示前,给对话框2传一个值,让值显示在对话框2的控件IDC_EDIT2中
CDlg1::OnButton1()
{
CDlg2 dlg;
dlg.m_str = "你好";
dlg.DoModal();
}
//Dlg2.h
public:
CString m_str;
//Dlg2.cpp
CDlg2::OnInitDialog()
{
GetDlgItem(IDC_EDIT2)->SetWindowText(m_str);
}
根据这个思路,你应该知道怎么操作listctrl吧Top
5 楼budongjiuwen(不懂就问)回复于 2004-08-02 15:44:58 得分 0
这个我明白,只是这样的话是不是失去了所谓的动态插值的思路。假设说我要把2作为一个通用的对话框类,不同的对话框调用2所要传的数据项多少也不同,对话框1需要向2中插3个数据,而对话框3却要插5个值,那一开始2中的要保留多少个预留的空间呢?Top
6 楼budongjiuwen(不懂就问)回复于 2004-08-03 09:48:31 得分 0
谢谢各位的帮助,我是一个初学者,以后肯定还会有不明的地方,希望大家继续帮我。谢谢!
结贴了,分数不多,见谅!Top




