我有一个 MFC 应用程序,它有一个从 CTabCtrl 继承的类,在我的 Main Dialog::OnInit() 方法上。
tabCtrl.InsertItem(0, _T("Tab 1"));
tabCtrl.InsertItem(1, _T("Tab 2"));
tabCtrl.InitDialogs();
tabCtrl.ActivateTabDialogs();
tabCtrl.ShowWindow(SW_SHOW);
tabCtrl 是一个从 CTabCtrl 继承的类的变量,方法 InitDialogs 是:
m_Dialog[0]->Create(m_DialogID[0], this);
m_Dialog[1]->Create(m_DialogID[1], this);
m_Dialog[0]->ShowWindow(SW_SHOW);
m_Dialog* 包含我从资源类中提取的两个对话框类。
我在运行程序时看到两个选项卡,但是当我执行类似的操作时
UpdateData(TRUE);
valueTest = "tEST";
UpdateData(FALSE);
我收到一个断言失败错误。我的 DoDataExchange 被调用,它看起来像:
void ConfigDialog::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, valueTest);
}
我已经为此苦苦挣扎了好几天,而且我只能找到其中没有任何控件的虚拟选项卡的示例。有没有我遗漏的步骤?
更新:断言错误显示这个
Microsoft Visual C++ 运行时库 --------------- 调试断言失败!程序:C:\Windows\SYSTEM32\mfc140d.dll 文件:f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp 行:4355 有关您的程序如何导致断言失败的信息,请参阅关于断言的 Visual C++ 文档
并且它无法 UpdateData(TRUE) 语句