CDialog
和 CDialogEx
有什么区别?我决定使用 CDialog
,因为如果 Dlg 源自 m_pMainWnd
,我无法将 CDialogEx
分配给 Dlg。
BOOL CPreparationApp::InitInstance()
{
MyClass2 Dlg; //derived from CDialog
m_pMainWnd = &Dlg;
Dlg.DoModal();
return TRUE;
}
如果不使用表单向导提供的
CDialogEx
,我可能会遇到什么样的问题?
如何分配从
CDialogEx
派生的m_pMainWnd变量?
CDialogEx
派生自 CDialog
,因此,将 m_pMainWnd
设置为 CDialogEx
派生对象应该不成问题。 CDialogEx
提供设置对话框背景颜色或图像的功能。
CDialogEX 用于设置对话框的背景颜色、背景图像,如果你想设置背景图像或颜色,那么你的类将从 CDialogEX 派生,但请记住,如果你使用 CDialaogEX 那么你应该使用该类的方法,例如CreateEX,如果您尝试从 CDilaogEX 派生类并使用 CDialog 方法,那么您将收到错误..
CDialogEx 创建背景菜单、按钮或者他们称之为对话框 如果您编写了一个按钮,按下该按钮时会提示一个窗口框架。要与窗框交互,您需要使用 CDialog。
这是因为CDialog直接继承自CWnd。