如何在自定义类中调用“SetDlgItemText”?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在自定义类中调用“SetDlgItemText”?相关的知识,希望对你有一定的参考价值。
我创建了基于Dialog的MFC应用程序(c ++)。 OnBnClickedButton
使用SetDlgItemText()
打印编辑控件的数据。现在我想在自定义类(新创建的类)中使用SetDlgItemText
,但收到错误“Debug assertion failed”。
class test: public CDialogEx
{
public:
void upd(CString);
};
void test::upd(CString a)
{
SetDlgItemText(IDC_EDIT6,a);
}
void CMFCApplication3Dlg::OnBnClickedButton4()
{
test obj;
obj.upd("Hello");
}
答案
您只能在创建对话框窗口时设置对话框项。
调用Create
或DoModal
时会创建对话框。只要您只有一个对话框类的实例,就不能在未创建对话框时访问其中的任何窗口。
通常,您应该使用DDX例程在对话框类和窗口之间交换数据。
PS:在我看来这是一个初学MFC问题。请阅读一些教程。
另一答案
尝试在事件处理程序中执行此操作
void CMFCApplication3Dlg::OnBnClickedButton4()
{
CString str; //Initialize this string to whatever you wish to
GetDlgItem(IDC_EDIT6)->SetWindowText(str);
}
希望这可以帮助。
p.s我知道这与SetDlgItemText无关,它只是在mfc中设置文本的另一种方式。
以上是关于如何在自定义类中调用“SetDlgItemText”?的主要内容,如果未能解决你的问题,请参考以下文章