vc 两个列表框控件直接内容显示的问题
工程中建立了2个对话框Dlg1、Dlg2,每个对话框中分别有个列表框控件List1、List2,想在第2个列表框中自动显示出第一个列表框中的内容,感觉应该很简单的,程序如...
工程中建立了2个对话框Dlg1、Dlg2,每个对话框中分别有个列表框控件List1、List2,想在第2个列表框中自动显示出第一个列表框中的内容,感觉应该很简单的,程序如下:
CDlg1 sample;
CString sProductName = sample.List1.GetItemText( 1,0 );
list2.SetItemText(1,0, sProductName);
结果却在运行时报错,不知道错在哪里?是因为在运行上段程序时,第1个对话框及其列表的变量已经销毁了吗?不懂 展开
CDlg1 sample;
CString sProductName = sample.List1.GetItemText( 1,0 );
list2.SetItemText(1,0, sProductName);
结果却在运行时报错,不知道错在哪里?是因为在运行上段程序时,第1个对话框及其列表的变量已经销毁了吗?不懂 展开
展开全部
正好相反,是因为第1个对话框并没有完全创建。
CDlg1 sample;只是建立了一个CDialog类的变量,
但是如果不调用sample.DoModal、sample.Create等操作时,
MFC并不会为这个变量创建相关联的窗体等界面元素,
此时sample.List1实际上是并未创建的,因此直接使用GetItemText会出错。
CDlg1 sample;只是建立了一个CDialog类的变量,
但是如果不调用sample.DoModal、sample.Create等操作时,
MFC并不会为这个变量创建相关联的窗体等界面元素,
此时sample.List1实际上是并未创建的,因此直接使用GetItemText会出错。
追问
其中Dlg2是通过点击Dlg1中的某个按钮然后DoModal()弹出来的,那我想知道我应该怎么将这个变量关联到相应的窗体元素?本人比较低级,望指导!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还有就是2个控件之间的值传递要这样
CDlg1 dlg;
没有分配内存空间,不能转换-得这样!
CString str_p;
str_p = List1.GetItemText(nIdx,0);
CString* pStr = (CString*)(List1.GetItemData(nIdx));
CString* pNStr = new CString;
*pNStr = *pStr;
int newItem =dlg.List2.InsertItem(0,str_p);
dlg.List2.SetItemData(newItem,(DWORD)pNStr);
dlg.DoMadul();
CDlg1 dlg;
没有分配内存空间,不能转换-得这样!
CString str_p;
str_p = List1.GetItemText(nIdx,0);
CString* pStr = (CString*)(List1.GetItemData(nIdx));
CString* pNStr = new CString;
*pNStr = *pStr;
int newItem =dlg.List2.InsertItem(0,str_p);
dlg.List2.SetItemData(newItem,(DWORD)pNStr);
dlg.DoMadul();
更多追问追答
追问
非常感觉你的回答。可是我的Dlg2是通过点击Dlg1中的某个按钮然后DoModal()弹出来的,你的代码中dlg为什么能访问list2啊,dlg是CDlg1的变量,可是list2是CDlg2中的控件啊……
也许是我表达的不清楚,希望您能不嫌麻烦进一步帮我解决这个问题啦!
追答
晕啦,没注意。自己改下就可以啊!list1,list2都是列表框相关联的成员变量
CDlg2 dlg;
没有分配内存空间,不能转换-得这样!
CString str_p;
str_p = List1.GetItemText(nIdx,0);
CString* pStr = (CString*)(List1.GetItemData(nIdx));
CString* pNStr = new CString;
*pNStr = *pStr;
int newItem =dlg.List2.InsertItem(0,str_p);
dlg.List2.SetItemData(newItem,(DWORD)pNStr);
dlg.DoModal();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询