VC数值传递问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 10:39:32
我用MFC做了一个基于对话框的文档,里面有个静态文本控件IDC_LABEL0;我增加一个对话框CLabelDlg,在CLabelDlg里有个EDIT控件,我想通过EDIT控件来设置IDC_LABEL0的文本。设置了EDIT控件的变量为m_label0后,我在CLabelDlg里增加一个按钮“设置”,响应函数是这么写的:
CEasyCountDlg *count;
count=new CEasyCountDlg;
count->SetDlgItemText(IDC_LABEL0,m_label0);
但是运行之后出现了一个错误提示的对话框,说是Debug Assertion Failed!
到底是怎么回事呢?本人菜鸟,积极学习,可分不多,仅求各位大虾帮帮忙,感谢不尽!
P.S我用的是
CLabelDlg dlg;
if (dlg.DoModal()==IDOK)
{
}
来调用对话框。

m_label0是什么类型的变量?是cstring类型还是控件类型,如果是cstring类型,只需给m_label0赋值,然后调用该类的UpdateData(FALSE)方法;如果是控件类型,调用m_label0.SetWindowText方法

可能的错误:
创建了一个CEasyCountDlg 对象,但是没有创建windows对象(调用create函数),所以SetDlgItemText出错了

new只是新建一个C++对象,而没有创建窗体。所以内存中根本就没有窗口和Edit控件,一般窗口是先新建一个对象,然后调用Create创建一个存在的实体。
CEasyCountDlg dlg;
dlg.Create(this,IDD_EASYCOUNTDLG);
dlg.ShowWindow();
或者
CEasyCountDlg dlg;
dlg.DoModal();