Chinaunix首页 | 论坛 | 博客
  • 博客访问: 642943
  • 博文数量: 133
  • 博客积分: 1566
  • 博客等级: 上尉
  • 技术积分: 1230
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-01 09:31
文章分类

全部博文(133)

文章存档

2019年(1)

2018年(1)

2017年(8)

2016年(9)

2015年(17)

2014年(4)

2013年(31)

2012年(25)

2011年(36)

2010年(1)

我的朋友

分类: C/C++

2012-12-03 22:58:16

MFC应用程序的基本运行的内在机制
 
1. 应用程序的进入点WinMain函数
   DOS----程序的进入点是main函数
   Windows---程序的进入点是WinMain函数
----函数WinMain的主要包括三个功能
1)注册窗口类,建立窗口以及完成其他的初始化工作
2)创建消息循环,根据消息类型调用相应的处理函数
3)检索到退出消息时关闭窗口,终止程序运行
   流程:
A. 函数WinMain会查找该应用程序的一个全局对象(CWinApp的派生类对象)
B. 函数WinMain调用应用程序对象得InitInstance成员函数,完成应用程序的初始化工作
C. 函数WinMain调用Run成员函数,运行应用程序的消息循环
D. 函数WinMain调用ExitInstance函数,退出应用程序
 
2. 消息循环
   Windows将发生的消息放入应用程序的消息队列中,函数WinMain通过消息循环从消息队列中提取消息,并将其传递给窗口函数的相应处理过程
1)检索消息:PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE)
2)翻译消息: TranslateMessage(&m_msgCur)
3) 分发消息: DipatchMessage(&m_msgCur)
    WindowProc主要完成对分发来的消息的处理工作,当然用户可以自定义新的消息以及消息响应函数
 
3. 退出程序
   当用户选择退出,MFC会发送标准命令消息ID_APP_EXIT,将激活消息处理函数CWinApp::OnAppExit()
  在这里将发送WM_CLOSE消息给窗口,窗口将处理这个消息,完成关闭窗口
  WM_CLOSE响应函数是CWnd::OnClose(),将销毁窗口。DestroyWindow函数就是用来销毁窗口,并发送WM_DESTROY,WM_NCESTROY消息给该窗口及其各级子窗口
  WM_DESTROY响应函数是CWnd及其派生类的成员函数OnDestroy()
  在MFC中OnNcDestroy是Windows窗口被销毁的时调用的最后一个成员函数
  最后由函数AfxPostQuitMessage发出WM_QUIT消息,通过退出消息循环,进而退出整个应用程序
阅读(1494) | 评论(0) | 转发(0) |
0

上一篇:MFC类库组成

下一篇:MFC消息映射

给主人留下些什么吧!~~