模块功能
添加当前模块大概功能的描述,希望不要把所有接口文档写在一个文件中,至少按模块分类。
- 在资源文件–添加----添加资源----双击 Dialog类
- 包含必须用到的头文件 afxwin,否则无法创建子类
- 定义 CWinApp 类的子类,重写其中的 InitInstance 函数
- 在全局范围内定义唯一的一个 CWinApp 子类对象
- 在 InitInstance 中编写逻辑添加功能,最多的是弹出对话框
MFC的创建过程
- 包含必须的头文件
#include <afxwin.h>
#include "resource.h"
- 创建一个继承自 CWinApp 类的子类
class CMyWinApp : public CWinApp
{
}
- 在类CMyWinApp中,重写一个叫做 InitInstance 的虚函数,这个函数可以当作入口函数
virtual BOOL InitInstance() override
{
/*
// 传入对话框 ID 初始化一个对话框
CDialog* pDialog = new CDialog(IDD_DIALOG1);
// 通过 doModule 函数创建模态对话框
pDialog->DoModal();
*/
// 在堆空间中创建一个对话框对象
CDialog *pDialog = new CDialog;
// 必须设置了程序的主窗口,才能正常执行
this->m_pMainWnd = pDialog;
// 通过 Create 创建一个非模态对话框
pDialog->Create(IDD_DIALOG1);
// 通过 ShowWindow 显示窗口
pDialog->ShowWindow(SW_SHOWNORMAL);
// m_pMainWnd 指向的窗口会被作为程序的主窗口,通过函数
// afxGetMainWnd 可以获取到这个主窗口对象
return TRUE;
}
- 在全局范围内定义一个唯一的 CWinApp 子类对象CMyWinApp theApp
// 5. 在全局范围内定义一个唯一的 CWinApp 子类对象
CMyWinApp theApp;
完整代码实现
#include <afxwin.h>
#include "resource.h"
class CMyWinApp :public CWinApp
{
virtual BOOL InitInstance() override
{
CDialog* pDialog = new CDialog(IDD_DIALOG1);
pDialog->DoModal();
return TRUE;
}
};
CMyWinApp theApp;