CDialog 和 CDialogEx 的区别

2022-01-12 00:00:00 compare visual-c++ mfc cdialog

CDialog 和 CDialogEx 有什么区别?我决定使用 CDialog,因为如果 Dlg 派生自 CDialogEx,我无法将 m_pMainWnd 分配给 Dlg.

What is the difference between CDialog and CDialogEx? I decided to use CDialog because I can't assign m_pMainWnd to Dlg if Dlg is derived from CDialogEx.

BOOL CPreparationApp::InitInstance()
{
    MyClass2 Dlg; //derived from CDialog 
    m_pMainWnd = &Dlg;
    Dlg.DoModal();
    return TRUE;
}

不使用表单向导提供的 CDialogEx 可能会解决哪些问题?

What kind of problems I might fave by not using CDialogEx like form wizard was offering?

如何分配从 CDialogEx 派生的 m_pMainWnd 变量?

How to assign m_pMainWnd variable derived from CDialogEx?

推荐答案

CDialogEX 是从 CDialog 派生的,因此,将 m_pMainWnd 设置为 CDialogEx 派生对象应该没有问题.CDialogEx 提供了设置对话框的背景颜色或图像的能力.

CDialogEX is derived from CDialog, so, setting m_pMainWnd to a CDialogEx derived object should not be a problem. CDialogEx provides the abillity to set the background color or image of the dialog.

相关文章