c++ - 如何在自定义类中调用“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");
}
解决方案
您只能在创建对话窗口本身时设置对话项。
Dialog 在Create
或被DoModal
调用时创建。只要您只有一个对话框类的实例,当对话框未创建时,您就无法访问其中的任何窗口。
通常您应该使用 DDX 例程在对话框类和窗口之间交换数据。
PS:在我看来,这似乎是一个初学者 MFC 问题。请阅读一些教程。
推荐阅读
- firebase - 自动从firestore获取数据后如何启动状态
- firebase - 如何迭代数组?
- python-3.x - 给定两个日期,找出工作日的圣诞节天数
- python - 在 macOS Catalina 中,macOS python PDF 服务被拒绝访问
- javascript - 在视图 ASP.NET MVC 中从数据库到谷歌地图的多个地图标记问题
- angular - 如何访问离子中的联系人列表
- html - 多行
和
- python - 在 PySpark UDF 中使用广播值抛出“java.io.IOException:无法删除原始文件”
- php - Reactjs - axios 发布请求不起作用 - 找不到 404
- flutter - 限制 TextField 中允许的字符数