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

Del*_*lla 3 c++ user-interface mfc entry-point visual-c++

从使用 C++ 进行 GUI 编程开始。因此,根据一些教程,我“编写”了以下代码来显示对话框。老实说,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;                                                                            
Run Code Online (Sandbox Code Playgroud)

小智 5

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

1) 放置初始化代码的最佳位置是 OnInitDialog。可以在OnInitDialog中初始化所有的成员变量。(请记住 winMain 是 Windows 应用程序的入口点。但在 MFC 中,它深深嵌入到样板代码中。)

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