首页 > 解决方案 > 如何在自定义类中调用“SetDlgItemText”?

问题描述

我创建了基于对话框的 MFC 应用程序(c++)。OnBnClickedButton使用 . 在编辑控件上打印数据SetDlgItemText()。现在我想SetDlgItemText在自定义类(新创建的类)中使用,但出现错误“调试断言失败”。

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");
}

错误截图

标签: c++visual-studiomfc

解决方案


您只能在创建对话窗口本身时设置对话项。

Dialog 在Create或被DoModal调用时创建。只要您只有一个对话框类的实例,当对话框未创建时,您就无法访问其中的任何窗口。

通常您应该使用 DDX 例程在对话框类和窗口之间交换数据。

PS:在我看来,这似乎是一个初学者 MFC 问题。请阅读一些教程。


推荐阅读