RE: Association of a Dialog Resource to the corresponding C++ Class
Hi,
The mystery is in your dialog header file and constructor. For example, if
we create a MFC dialog named CMyDialog, then in mydialog.h, we can see the
following code:
public:
// Dialog Data
enum { IDD = IDD_MYDIALOG };
This declares that the class CMyDialog has an associated dialog which has
the ID IDD_MYDIALOG .
However just the above declaration is not enough, since CMyDialog class
must be able to construct the dialog in runtime. MFC implement this via
class constructor:
CMyDialog::CMyDialog(CWnd* pParent /*=NULL*/)
: CDialog(CMyDialog::IDD, pParent)
{
}
You can see that the real dialog construction is done by the base class
CDialog. CDialog is responsible for construct a dialog according to the
related dialog template resource.
If you refer to CDialog class in MSDN, you will find the following
description:
"One form of the constructor provides access to the dialog resource by
template name. The other constructor provides access by template ID number,
usually with an IDD_ prefix (for example, IDD_DIALOG1).
To construct a modal dialog box from a template in memory, first invoke the
parameterless, protected constructor and then call InitModalIndirect.
After you construct a modal dialog box with one of the above methods, call
DoModal.
To construct a modeless dialog box, use the protected form of the CDialog
constructor. The constructor is protected because you must derive your own
dialog-box class to implement a modeless dialog box. Construction of a
modeless dialog box is a two-step process. First call the constructor; then
call the Create member function to create a resource-based dialog box, or
call CreateIndirect to create the dialog box from a template in memory. "
Hope this helps. If you have any other questions or concerns, please feel
free to let us know.
Have a good day!
Best regards,
Charles Wang
Microsoft Online Community Support
=====================================================
When responding to posts, please "Reply to Group" via
your newsreader so that others may learn and benefit
from this issue.
======================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
======================================================