Reputation: 351
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
?
Upvotes: 8
Views: 12614
Reputation: 1
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
directly inherits from CWnd
.
Upvotes: 0
Reputation: 135
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 that if you are using CDialogEx
, then you should use methods of that class (like CreateEx
). And, if you are trying to derive a class from CDialogEx
and use a CDialog
method, then you will get an error.
Upvotes: 7
Reputation: 4590
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.
Upvotes: 9
Reputation: 4335
I had a case where a menu button was not working properly and the MFC source code recommended to replace CDialog
by CDialogEx
:
And after I did it, everything worked right!
Upvotes: 0