版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 MFC程序设计基础 v重点:MFC的特点,MFC中的类和应用框 架程序 v难点:MFC的消息处理和运行模式 v掌握:简单MFC程序的编制 2.1MFC概述 v什么是MFC? 1)最初的Windows程序设计: 2)C+ 程序设计(面向对象) 2.1.1 MFC与应用程序框架 vMFC定义了 应用程序框架的好处 2.1.2 MFC的组成 MFC主要由一组类,一些宏以及若干个全局函数组成。作用 : 2.1.3 MFC中的类 MFC中的类分为两种(见书P20图2.1): v从CObject类派生的类(绝大部分) v没有父类的非派生类 CObject派生类包含Windows API的接口类: CWi
2、nApp、 CWnd、 Cmenu 、CGdiObject 、 CDC 2.2 MFC程序的特点 MFC编程与Windows API编程的异同之处: 相同点: 不同点: 2.2.1 MFC与消息处理 2.2.2 MFC运行模式 MFC使用两个类来封装WinMain和窗口函数的功能 其他对象 CWinApp对象 CWnd对象 系统 消息 消息 消息 创建 创建 创建 消息 2.3.简单的简单的MFC程序程序 1、包含afxwin.h头文件 此头文件包含了MFC包含的各种类,宏,全 局函数,还包还了Windows.h 2、派生应用程序类 CWinApp类封装了应用程序的初始化、运行 和终止等功能,
3、所以基于框架的应用程序必 须有且只有一个CWinApp类及其派生类的对 象。 3、派生窗口类 CWnd:OnPain成员函数负责处理发给窗口的WM_PAINT消 息,可以实现窗口绘制,因此需要对CWnd派生子类,并重 载(重写)OnPaint成员函数。 在MFC中,CWnd的一些派生类对CWnd实现了更高的封装, 不仅添加了功能,而且使用更方便,如CFrameWnd。本例 的窗口类为了使用更方便就是从CFrameWnd进行派生的。 另外,MFC程序中需要使用 DECLARE_MESSAGE_MAP()宏为类添加消息处理能力。 4、建立窗口 v在窗口类的构造函数中使用从父类继承来的 Create
4、成员函数来建立窗口。该函数的参数 说明见书P24。 v在重载的InitInstance成员函数中添加建立程 序窗口的代码,程序在初始化时完成窗口的 建立(new 一个窗口类,创建窗口类对象的 同时,构造函数创建窗口)和显示(调用 ShowWindow和UpdateWindow)。代码见 书P24。 5、加入消息映射 v以BEGIN_MASSAGE_MAP()开始、以 END_MASSAGE_MAP()结束的一组宏与类的定义中,所使 用的DECLARE_MESSAGE_MAP()宏一起,可以建立窗口 消息与消息处理成员函数间的对应关系,这些宏被统称为消 息映射宏。 vBEGIN_MASSAGE_
5、MAP()宏有两个参数,分别是处理消息 的类及其父类。 vBEGIN_MASSAGE_MAP()和END_MASSAGE_MAP()之间, 使用一些预定义的宏来关联消息和消息成员处理函数,如 ON_WM_PAINT()宏用来建立WM_PAINT消息到一个窗口类 OnPaint成员函数间的映射关系,当该窗口类管理的窗口接 收到WM_PAINT消息时,框架会自动调用该窗口类的 OnPaint成员函数。 v消息种类很多,所以来接消息和消息处理成 员函数的宏也很多,用户可以通过MSDN进 行查询。 v消息映射宏及OnPaint代码见书P25。 6、建立MFC应用程序对象 C02App theApp;
6、1、启动VC 2、菜单”FILE”NEW”,后选择“Win32 Application”,并在 右侧“Project name:”后输入框中输入工程名后,点击 “OK”按钮,然后选择“An empty project”后,选择 “Finish”按钮后,选择“OK”按钮。 3、菜单”FILE”NEW”,选择“files”后选择列表框中的“C+ Source File”后,在右侧“File”后输入框中输入文件名后 选择“OK”按钮。 4、输入程序源代码。-以上同第一章,也可以直接将第一章 的源码替换为第二章源码。 5、修改项目属性:菜单”Project”Settings”,在“General” 选项卡中的“Mi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某纺织厂织机维护办法
- 2026年不锈钢栏杆批发合作协议三篇
- 服务态度及健康宣教
- 2026河北省新高一英语弯道超车:阅读完形难度跃升预警与暑假提升方案
- 消防安全标志使用指南
- 石油安全标准解读讲解
- 校园反欺凌机制建设
- 交通安全规则与文明出行
- 测试工装小批量试生产合同
- 企业绿色物流推进方案
- 潜在的失效模式及后果fmea
- 2022年揭西县中小学教师招聘考试试卷及答案
- 滨州邹平市结合事业单位招聘征集本科及以上毕业生入伍考试真题2022
- 校园安全百日攻坚行动实施方案
- 人教版 小学一年级下册语文全册知识点汇总
- 苏科版六年级下册《劳动》全一册全部教案(共9节)
- GB/T 6368-1993表面活性剂水溶液pH值的测定电位法
- GB/T 12060.5-2011声系统设备第5部分:扬声器主要性能测试方法
- GB 12476.1-2000可燃性粉尘环境用电气设备第1部分:用外壳和限制表面温度保护的电气设备第1节电气设备的技术要求
- 泌尿系统疾病ct诊断 课件
- 辽宁省葫芦岛市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
评论
0/150
提交评论