我一直坚持以下问题。我有一个包含一些控件的主对话框。它还显示了几个子对话框(作为子控件),这些子对话框设置为带有ID
s 的指针成员。我ID
通过CreateControl
在OnInitDialog
. 昨天它工作得很好。今天,我决定在子对话框中添加一些控件,结果发现了一个问题。
这就是我在主对话框 durig 中创建子对话框的方式OnInitDialog
:
if (m_pNewObjDlg != NULL) m_pNewObjDlg->Create(m_nNewObjDlgID, this);
if (m_pSharedObjDlg != NULL) m_pSharedObjDlg->Create(m_nSharedObjDlgID, this);
这就是我在我的一个例程之外设置子对话框的方式:
dlgSelectSharedObject.SetNewPageObject(&dlgSelectNewTableDialog, CSelectNewTableDialog::IDD);
dlgSelectSharedObject.SetSharedPageObject(&dlgSelectSharedTable, CSelectSharedTableDialog::IDD);
我看到两个子对话框运行良好,设置了子对话框OnInitDialog
,方法返回有效值。但是当执行回到主对话框时,我看到和的值是。我不知道这怎么可能发生。我仔细检查了s,它们没有重叠。结果,除了带有控件的主对话框外,我没有显示任何内容。只是有什么想法吗?DoDataExchange
m_hWnd
GetDlgItem
OnInitDialog
m_hWnd
pNewObjDlg
pSharedObjDlg
NULL
ID
ASSERT