class CAboutDlg : public CDialog
{
public:
CAboutDlg();// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
        问题一:为什么要定义一个这样的枚举?
//}}AFX_DATA // ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
        问题二:这个抽象方法的作用是什么呢?

//}}AFX_VIRTUAL// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
        问题三:这个方法的作用是什么呢?

};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)        问题四:“::”表示调用吗?   还是说“CAboutDlg”下的“CAboutDlg()”方法继承自“ CDialog(CAboutDlg::IDD)类”?        问题五:为什么非要用“::”?   不用不行吗,直接“CAboutDlg() : CDialog(CAboutDlg::IDD)”。         问题六:“CAboutDlg::IDD”这是什么意思???         问题七:这里是对CAboutDlg的构造方法“CAboutDlg()”的重新定义???   那么为什么一开始不定义好呢?          

{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
        问题八:为什么要在“CAboutDlg”类定义的外面再定义类的方法?为什么不定义“CAboutDlg”类的时候,就将方法实现呢?
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()         问题九:这里的“BEGIN_MESSAGE_MAP”的作用是什么呢?   “CAboutDlg”类里面定义的“DECLARE_MESSAGE_MAP()”有什么不同呢?/////////////////////////////////////////////////////////////////////////////
// CSendFileServerDlg dialog

解决方案 »

  1.   

    嗯,没错,最好自己查查,如果你都能查明白了,估计MFC也挺精通了
      

  2.   

    先去看一下C++基础教程,再看MFC会好理解些
      

  3.   

    问题一:这个枚举是dialog的ID,dialog创建时依赖一个 对话框模板。
    问题二:在调用UpdateData函数时,内部会调用DoDataExchange,实现数据和控件之间的传递。
    问题三:声明消息映射,与后面消息映射相对应
    问题四:拜托,这是c++基础知识,CXX::CXX()这是构造函数写在类外面而已
    问题五:必须要。不要的情况是,你把构造函数实现写在类里面
    问题六:这里的IDD就是aboutdlg的对话框模板(可以在资源界面中Dialog项看到)
    问题七:看前面问题四的回答(ps:java中类实现都在类中,c++可在类中,也可在类外,在类外时,需要加上限定符,比如类Hello有个good方法,类中class Hello{ public: void good(){} }; 那么写在类外呢?class Hello{ public: void good(); }; void Hello::good(){})
    问题八:看问题七的解释
    问题九:有始有终,前面 声明消息映射,此处定义消息映射。消息映射:追溯到mfc源代码可以看到,消息映射其实是把他们加入到消息映射表,消息循环时,会在映射表中查找,找到就调用相应函数。