MFC程序的运行过程和消息映射机制

最近需要做一些图像识别和分类的小例程,在老师的建议下学习Opencv+MFC平台。之前一直在做单片机方面,因为有main函数的显式存在,觉得对程序的控制度很好,一切都有迹可循,但是在接触MFC之后觉得程序执行的相比之前不够明朗。在看到孙鑫的《VC++深入详解》之后觉得有所帮助,现写下一个小结,希望能帮助初学者。

在测试程序执行过程的时候可以通过打断点来查看程序是否经过这个函数。下面写下MFC程序的执行过程的小结。

首先,利用全局应用程序对象theApp启动应用程序。

然后,调用全局应用程序对象的构造函数完成初始化。

此后,进入WinMain函数。主要完成注册窗口类,创建窗口,显示窗口,更新窗口。

最后,进入消息循环。


下面简述一下单文档(SDI)工程函数的调用顺序。

1)CSdiApp theApp;          //sdi.cpp
2)CSdiApp::CSdiApp()             //sdi.cpp
3)BOOL CSdiApp::InitInstance()         //sdi.cpp
4)CSdiDoc::CSdiDoc()                   //sdiDoc.cpp
5)CMainFrame::CMainFrame()          //MainFrm.cpp
6)BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)    //MainFrm.cpp
7)int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)    //MainFrm.cpp
8)CSdiView::CSdiView()                     //sdiView.cpp
9)BOOL CSdiView::PreCreateWindow(CREATESTRUCT& cs)         //sdiView.cpp
10)BOOL CSdiDoc::OnNewDocument()                //sdiDoc.cpp
11) void CSdiView::OnDraw(CDC* pDC)                //sdiView.cpp
// ---------------- 关闭窗口后-------------------------------------
12) CSdiView::~CSdiView()
13) CMainFrame::~CMainFrame()
14) CSdiDoc::~CSdiDoc() 

MFC的消息映射机制:在能接受和处理消息的类中如CXXXView和CXXXDlg中,存在一个消息和消息函数的静态对照表。当有消息到来时,程序只需查看消息静态表,看其中是否有该消息,如果有就处理。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值