我正在关注这篇文章:
我已经在我的测试项目中编译了它,但我有一个问题。文章最后写道:
最后一点要注意的是,即使它不在代码中,您也应该在
中调用CEmbeddedDialogDlg::DoDataExchange
和m_dlg1
m_dlg2
方法。DoDataExchange
目前我有:
void CMFCApplication3Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TAB1, m_ctlTab1);
}
我的三个子对话框
DoDataExchange
方法似乎不可用?我注意到在子对话框的所有三个实例中,该函数都具有 protected
的访问权限,这可能应该保持这样。那么在子对话框上调用 DoDataExchange
的正确方法是什么?
根据我提出的评论:
void CPublicTalksSetupDlg::UpdateData(BOOL bSaveAndValidate)
{
const auto current = m_tabReportMode.GetCurSel();
if (current == 0)
{
m_dlgList.UpdateData(bSaveAndValidate);
}
else if (current == 1)
{
m_dlgReview.UpdateData(bSaveAndValidate);
}
else if (current == 2)
{
m_dlgSummary.UpdateData(bSaveAndValidate);
}
__super::UpdateData(bSaveAndValidate);
}
效果很好。