VS2013/MFC基于对话框编程:[3]程序执行流程

2025-10-18 04:49:01

1、每创建一个项目,一般会包含3个类,“关于”对话框类、主对话框类以及用于初始化项目的App类,假如项目名称为Demo,那么这三个类分别为CAboutDlg、CDemoDlg、CDemoApp。

VS2013/MFC基于对话框编程:[3]程序执行流程

2、项目生成后,都会生成一个属于CDemoApp类的theApp对象,对本应用程序实例化,这个在CDemoApp.cpp文件中定义,创建时调用构造函数CDemoApp::CDemoApp();这就是程序创建的第一步。

VS2013/MFC基于对话框编程:[3]程序执行流程

3、接下来程序会调用winmain函数,这个在项目文件中找不到,但可以在VS2013的安装路径下找到,其函数声明为:

int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,_In_ LPTSTR lpCmdLine, int nCmdShow);

VS2013/MFC基于对话框编程:[3]程序执行流程

VS2013/MFC基于对话框编程:[3]程序执行流程

4、调用完winmain后,就通过InitInstance()函数初始化窗口,包括注册、创建和显示对话框,InitInstance函数是CDemoApp类中除构造函数以外唯一的成员函数。

一般不需要修改这部分程序,但有些时候可以添加部分代码,比如需要创建多个对话框时,刚启动时弹出的对话框(比如用于登录)不是主对话框,就可以在这个函数里创建主对话框之前调用登录对话框,这样就可以设置启动时的默认对话框了。

VS2013/MFC基于对话框编程:[3]程序执行流程

VS2013/MFC基于对话框编程:[3]程序执行流程

5、应用程序创建完了,程序开始运行了,于是进入消息循环,windows程序的事件都是消息驱动的,每产生一个消息就触发一个响应事件,消息和事件通过消息映射DECLARE_MESSAGE_MAP()联系在一起。

默认包含三个消息:

ON_WM_SYSCOMMAND()    //响应控制指令

ON_WM_PAINT()                   //响应绘图消息,用于刷新窗口

ON_WM_QUERYDRAGICON()//当用户拖动最小化窗口时取得光标

VS2013/MFC基于对话框编程:[3]程序执行流程

6、当用户关闭应用程序时,会发送一个WM_CLOSE消息,程序响应后结束程序,如何在点击关闭时需要弹出其他对话框(比如用于提示保存),可以通过类向导添加WM_CLOSE消息处理函数,变添加相关处理程序,比如:

void CDemoDlg::OnClose()

{

if (MessageBox(_T("确定退出吗"), _T("提示"), MB_YESNO|MB_ICONWARNING) 

== IDNO)

return;

CDialogEx::OnClose();

}

VS2013/MFC基于对话框编程:[3]程序执行流程

VS2013/MFC基于对话框编程:[3]程序执行流程

7、这样,一个应用程序通过定义,初始化,由winmain开始,注册、创建、显示窗口,消息响应,程序终止 完成了他的运行周期。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢