Pergunta

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;
}

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

How to assign m_pMainWnd variable derived from CDialogEx?

Foi útil?

Solução

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.

Outras dicas

CDialogEX is used for setting background color, background images on dialog, If you want to set background images or color then your class will be derived from CDialogEX,but keep in mind If you are using CDialaogEX then you should use method of that class like CreateEX,If you are trying to derive class from CDilaogEX and use CDialog Method,then you will got Error..

I had a case where a menu button was not working properly and the MFC source code recommended to replace CDialog by CDialogEx:

CMFCMenuButton does not close

And after I did it, everything worked right!

CDialogEx to create a back ground menu, button or they called it dialog box If you program a button when it pressed to prompt a window frame. To interact with the window frame, u need to use CDialog.

This is because CDialog direct inheritate from CWnd.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top