代码之家  ›  专栏  ›  技术社区  ›  Della

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

  •  2
  • Della  · 技术社区  · 8 年前

    从使用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;                                                                            
    
    1 回复  |  直到 8 年前
        1
  •  5
  •   PrashanthBC    8 年前

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

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

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