这个基本 MFC 对话框应用程序的入口点是什么?

What is the entry point of this basic MFC Dialogue Box Application?

开始使用 C++ 进行 GUI 编程。因此,按照一些教程,我 'wrote' 下面的代码显示了一个对话框。老实说,Visual Studio 2015 向导完成了大部分工作,但这里是代码文件。它正确显示了标识符指向的对话框,但我真的不知道它是如何工作的。首先,代码的入口点是什么?甚至没有函数,那么当我构建并 运行 时究竟执行了什么?

#include<afxwin.h>
#include"resource.h"

class CExampleDlg :public CDialog
{
public:
    CExampleDlg():CDialog(IDD_EXAMPLE_DLG){}
    ~CExampleDlg(){}
};

class CExample:public CWinApp
{public:
    BOOL InitInstance()
    {
        CExampleDlg myDlg;
        m_pMainWnd = &myDlg;
        myDlg.DoModal();
        return TRUE;

    }
};
CExample MyApp;                                                                            

不同于正常的 c/c++ 应用程序,后者的入口点是 main,您可以完全控制执行流程。 MFC 应用程序是事件驱动的。您编写的代码是根据用户与应用程序交互时发生的事件执行的,例如单击按钮、在文本框中输入文本等。当没有交互时,应用程序处于空闲状态。

1) 最好的地方是 OnInitDialog 来放置你的初始化代码。您可以在 OnInitDialog 中初始化所有成员变量。 (记住 winMain 是 windows 应用程序的入口点。但在 MFC 中,它深嵌在样板代码中。)

2) 添加消息处理程序来处理用户操作,以便稍后执行您的核心逻辑。例如:如果对话框上有一个按钮,那么您需要为该按钮添加消息处理函数,当用户单击该按钮时将调用该函数。这可以使用 class 向导 (https://msdn.microsoft.com/en-us/library/ee748520.aspx) 轻松完成。