windows编程基础andMFC_zhang解读.ppt

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
windows编程基础andMFC_zhang解读

* * MyHello应用程序分析 打开“Workspace”窗口中的”Class View( 类视图),MFC生成5个类 CAboutDlg CMainFrame CMyHelloApp CMyHelloDoc CMyHelloView 对于每个类MFC生成两个文件: .h:定义了类和它的各种变量、函数原形; .cpp:生成类对象、实现这个类的函数体。 * MyHello应用程序分析 CMyHelloApp类: 派生于MFC的CWinApp类,作用是初始化应用程序及运行该程序的所需的成员函数。 MyHello.h:声明了CMyHelloApp类, 虚函数InitInstance()的作用:设置注册数据库,载入标准设置(最近打开的文件列表等)、注册文档模板,其中在注册文档模板时隐含创建了主窗口接下来处理命令行参数,显示窗口,然后返回、进入消息循环。 * MyHello应用程序分析 CMainFrame类: 派生于MFC的CFrameWnd类,作用是管理应用程序的窗口,显示标题栏、状态栏、工具栏等,同时处理针对窗口操作的信息。 MainFrm.h:声明了两个主要函数PreCreateWindow()和OnCreate() 及两个对象m_wndStatusBar(管理状态栏)和m_wndToolBar(管理工具栏) * MyHello应用程序分析 CMyHelloDoc类: 派生于MFC的CDocument类,作用是存放应用程序的数据以及文件的保存加载功能。文档类要通过视图类来实现与用户的交互。 CMyHelloDoc.h:声明了三个主要函数OnNewDocument()用于初始化文档 Serialize()串行化(保存和装入)文档 Dump()用于调试诊断。 * MyHello应用程序分析 CMyHelloView类: 派生于MFC的CView类,作用是管理视图窗口,它对应的对象在框架窗口中实现用户数据的显示和打印。 MyHelloView.h:声明了三个函数用于实现数据打印OnPreparePrinting()/ OnBeginPrinting()/ OnEndPrinting()。 GetDocument():返回CMyHelloDoc指针,获取文档指针 OnDraw():实现视图数据的显示和刷新。 * MyHello应用程序分析 预编译头文件stdafx.h: 用于建立一个预编译的头文件MyHello.pch和一个预定义的类型文件stdafx.obj,加速编译过程。 资源文件:Resource.h MyHello.ioc:应用程序的图标 MyHello.rc2:不可直接编辑的资源 Toolbar.bmp:工具栏用到的位图资源 MyHelloDov.ico:生成文档的图标 ReadMe.txt * MFC消息处理 MFC应用程序与其他任何 Windows 程序一样,也使用消息驱动机制,但 MFC 提供的消息处理机制使得消息的处理更加容易。 MFC中消息可以分为三类: Windows 消息(窗口消息):包括以 WM_开头的消息,但 WM_COMMAND 除外。Windows消息由窗口和视图处理。这种消息通常附带一些参数传递给处理函数,这些参数为处理函数正确地处理消息提供了必要的信息。 控件通知消息:当控件的状态发生改变(例如用户利用控件进行输入)时,控件就会向其父窗口发送控件通知消息。MFC对控件通知消息的传递方式与其他以WM_开头的 Windows 消息一样,但 BN_CLICKED 是个例外,该消息的传递方式与命令消息的传递机制一样。 命令消息:包括来自于菜单、工具栏中的按钮和加速键等用户界面对象的WM_COMMAND 通知消息。 * 消息映射 声明 宏 DECLEAR_MESSAGE_MAP() (.h文件) BEGIN_MESSAGE_MAP() //实现(.cpp) ……. ON_Message(ID, ClassMethod) END_MESSAGE_MAP() 消息映射项 ON_Message(ID, ClassMethod) 窗口消息、命令消息、控件通知消息的消息映射项不同 消息处理方法 afx_msg void ClassMethod(); 发送消息SendMessage() ——直接调用窗口函数 寄送消息PostMessage()——到队列 * VC中存在几种系统定义的消息分类,不同的前缀符号经常用于消息宏识别消息附属的分类

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档