Windows编程中的新手。
我想创建一个同时使用CPropertyPage
和CDHtmlDialog
的对话框?
class CPropertyPage : public CDialog
class CDHtmlDialog : public CDialog
由于我无法将上述每种情况的继承更改为“虚拟公开”,是否仍然可以创建一个包含CPropertyPage
字段和CDHtmlDialog
中某些字段的对话框?
答案 0 :(得分:2)
您可以将HTML对话框创建为属性页的子对话框。唯一的问题是,如果用户按下取消,子对话框将关闭。您必须覆盖CDHtmlDialog::OnCancel
。例如:
class CMyDHtmlDialog : public CDHtmlDialog
{
void OnCancel()
{
//GetParent()->GetParent()->PostMessage(WM_COMMAND, IDCANCEL);
}
};
class CMyPropertyPage : public CPropertyPage
{
CMyDHtmlDialog child;
BOOL OnInitDialog()
{
BOOL res = CPropertyPage::OnInitDialog();
child.Create(IDD_HTML, this);
CRect rc;
GetClientRect(&rc);
child.SetWindowPos(NULL, 0, 0, rc.Width(), rc.Height(), SWP_SHOWWINDOW);
return res;
}
};