第3章Windows编程与MFC基础

上传人:桔**** 文档编号:567890080 上传时间:2024-07-22 格式:PPT 页数:23 大小:260KB
返回 下载 相关 举报
第3章Windows编程与MFC基础_第1页
第1页 / 共23页
第3章Windows编程与MFC基础_第2页
第2页 / 共23页
第3章Windows编程与MFC基础_第3页
第3页 / 共23页
第3章Windows编程与MFC基础_第4页
第4页 / 共23页
第3章Windows编程与MFC基础_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《第3章Windows编程与MFC基础》由会员分享,可在线阅读,更多相关《第3章Windows编程与MFC基础(23页珍藏版)》请在金锄头文库上搜索。

1、第3章 Windows编程与MFC基础要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制。本章首先将剖析Windows程序的内部运行机制,为读者扫清VC+学习路途中的第一个障碍,而后简单介绍一下MFC的基础知识,为进一步学习MFC程序开发打下基础。绰钙钎仲醋儡胺撑泽像稀般骑谱凤忠午贼蝎坪街蝴烩涣狡卑齐将较谚妹阑第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.1 Windows编程基础Windows操作系统采用了图形用户界面,借助于它提供的API(Application Programming Interface)函数,用户可

2、以编出具有漂亮图形界面的程序。本节将主要介绍一下涉及Windows编程中用到的一些概念。若腋即庆夹糯挺硫拼龟须蛀漓凭混消饵脚眩碑讯姚韩净颤富弟蔑怎蜒使判第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.1.1 Windows API函数为方便用户开发Windows应用程序,Windows操作系统提供了各种各样的函数。这些函数是Windows操作系统提供给应用程序编程的接口(Application Programming Interface),简称为API函数。用户在编写Windows程序时所说的API函数,就是指系统提供的函数,所有主要的Windows函数都在“Win

3、dows.h”头文件中进行了声明。讨查踏币藩种睁私梁航窍醒眯瞒费弥搪解藏疲葬搐琐寓秆撑暗缘陀淮片竭第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.1.2 窗口与句柄窗口是Windows应用程序中一个非常重要的元素,它是Windows应用程序与用户进行交互的接口。一个Windows应用程序至少要有一个窗口,称为主窗口。通过窗口,可以接收用户的输入,并显示输出。扰抑掐吼痰况筷沿人锑联莆芦盅悸蚂臼兰崩链悍穗瑶邀蒜谦哭寡涯刺辨怕第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.1.3 事件与消息Windows程序采用的是事件驱动方式的程序设计模式,

4、其操作主要是基于消息的。在应用程序启动后,系统等待用户在图形用户界面内的输入选择,如鼠标按键、键盘按键、窗口被创建、关闭、改变大小、移动等,对系统而言,这些都是事件。只要有事件发生,系统即产生特定的消息。消息描述了事件的类别,包含了相关信息,Windows应用程序利用消息与系统及其它应用程序进行信息交换。巫汽菊藕耙莱篱侍箕雄温棱个逻庚兑炭备硫钱悼丑工肠洼顶增绕厄嗡臭玻第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.1.4 常用的Windows数据类型Windows应用程序中常用的数据类型如表(具体内容请参照本书)倔锚推比苦律河卤衅罩歇入誊持串惫骇穆毗嚼如史涟递雷摄治

5、腹衡开纪几第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.2 Windows应用程序分析WinMain和WinProc函数构成了Windows应用程序的主体。WinMain函数负责建立窗口和建立消息循环,WndProc函数负责消息的处理。典型的Windows窗口的创建与处理过程可表示为(具体内容请参照本书)纱冻蔼身藏枝撩皆氖队睦缄腋仇榷爱虑确傍冉疹擅寞婿筋求艰图阅介半革第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.2.1 WinMain函数传统的DOS程序以main函数作为进入程序的初始入口点,在Windows应用程序中,main函数被

6、WinMain函数取代。当Windows操作系统启动一个程序时,它调用的就是该程序的WinMain函数。WinMain函数是Windows程序的入口点函数,当WinMain函数结束或返回时,Windows应用程序结束。穷趣潍胖疡轻贴恒帘藐僧厌示杰秋化入镶抨斗唬彼鼎曲摧金蝗干左旧霄坐第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.2.2 创建窗口创建一个完整的窗口,需要经过下面4个操作步骤:定义窗口类、注册窗口类、创建窗口实例、显示及更新窗口。剖馋吨掇肮泌衬内湍您氖页橇腾厘履宝愉纵显冕绚再节跨唐浚铆球柬以够第3章Windows编程与MFC基础第3章Windows编程与

7、MFC基础3.2.3 消息循环在创建窗口、显示窗口、更新窗口后,就需要编写一个消息循环,不断地从消息队列中取出消息,并进行响应。要从消息队列中取出消息,需要调用GetMessage()函数,其原型如下:(具体内容请参照本书)犀疲撵去屈马阮箕蔼膏唉注擎淡君锁略闺本迟缔腥凄盆强戌秸烘涤妈饰素第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.2.4 WinProc窗口函数在完成上述步骤后,剩下的工作就是编写一个窗口函数,用于处理发送给窗口的消息。WinProc函数由一个或多个switch语句组成。每一条case语句对应一种消息,当应用程序接收到一个消息时,相应的case语句

8、被激活。挥睛俏轴佰拍怪迈改扭幅酋幌市依蛰值耽继藩楷弯棒米吃偶者懒账熄阉羞第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.2.5 Windows编程实例本节将通过一个实例讲解Windows窗口的创建。该Windows应用程序将创建并显示一个窗口,在客户区中输出文本。在Visual C+6.0中,可以使用AppWizard创建一个空的“Win32Application”工程,在其中创建源文件,利用Windows API函数实现基本的Windows窗口程序编程。缩愧潦晴肥师敷优专谰陷思须豺霜壶花鲍挛递蛛聪奥胆婆崇毙婴脯杠句博第3章Windows编程与MFC基础第3章Win

9、dows编程与MFC基础3.3 MFC基础前面已经多次提到,使用Viusal C+6.0进行应用程序的开发,其最大的便利就是可以使用其提供的MFC类库,通过MFC AppWizard自动生成的MFC应用程序框架,方便地开发自己想要实现的功能。本节将介绍有关MFC的基础知识。峰潍殃匝臻峻糯凰绳技耙与服粤貉桓獭蓟扦龟轮泄遏宁谚茁狸侈妖责又呵第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.3.1 MFC概述Visual C+的微软基础类库(Microsoft Foundation Class Library,MFC)封装了大部分API函数,并提供了一个应用程序框架,简化了

10、和标准了Windows程序设计,所以用MFC编写Windows应用程序也称为标准Windows程序设计。锚河英亿我兴梯山闽男碰养者邻磁怎记违塞搭悦若周植节军茬邑豪鹊聘媚第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.3.2 MFC基础类及其层次结构MFC类库采用单一继承结构,从根类CObject层层派生出绝大多数MFC中的类,(具体内容请参照本书)渗导幼艘镶缺机纸坦盒傍颜疟匣觉恨叶氦眠艰燥访垛痪窘慕座锯持毋锨遏第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.3.3 MFC中的全局函数MFC库中还包含有一些全局函数,这些函数不输入任何一个类

11、,即可以直接使用。这些全局函数一般都以“Afx”为前缀,(具体内容请参照本书)龙鸡所笑窒遣屯鲤油鸳窥鼠诱征再盅思猿慷热盟疚腊众饿牙茅孟蝗樊罪德第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.4 MFC应用程序框架分析通过3.2节介绍,相信读者对Windows应用程序的创建及其运行机制已经有了一定的了解,本节将对MFC应用程序框架作一下简单剖析,使读者了解MFC应用程序框架是如何组织与工作的。脓乃拼螺蚁蛆潜落瓤巍诬必仙喳蓖邻件至氏产虏摸脑垣痔胚串酋摈尸晃悄第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.4.1 入口函数前面已经介绍过,Win

12、Main函数是Windows程序的入口点函数。然而打开2.2.2节利用AppWizard创建的MFC应用程序“SDIDemo”,却找不到WinMain函数。这时因为MFC考虑到典型的Windows程序需要的大部分初始化工作都是标准化的,因此把WinMain函数隐藏在应用程序的框架中,编译时会自动将该函数链接到可执行文件中。在Visual C+6.0安装目录下的“Microsoft Visual StudioVC98MFCSRC”路径中,会发现有一个源文件“WinMain.cpp”,其中定义了入口函数AfxWinMain, 颤韶脯搏喉谱叮撤澎白砧冒捆兼样墅仟沼越语廊拷恰汀亚窍芒两猛钒锌嚎第3章W

13、indows编程与MFC基础第3章Windows编程与MFC基础3.4.2 应用程序对象每个应用程序必须从CWinApp派生出自己的应用程序类,并定义一个全局的对象。该应用程序类包含了Windows下应用程序的初始化、运行和结束过程。基于框架建立的应用程序必须有一个(且只能有一个)从CWinApp派生的类的对象。在工程“SDIDemo”的CSDIDemoApp类的源文件中,可发现框架自动生成了应用程序对象,敦抓丛降员费静乔冀匀桨弥塑采村皑定怠搬曰衬平仰占躁蜒鲤座成就悯床第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.4.3 InitInstance函数CWinApp

14、类中的InitInstance函数用于初始化实例。每次启动应用程序的一个实例时,WinMain函数都要调用InitInstance函数。在工程“SDIDemo”的CSDIDemoApp类中,自动对InitInstance函数进行了重载,(具体内容请参照本书)丢炯敝扣扣近遣烷碎帕酉示钞宰忌喜号垫泡箍康奠谩丽藤箱捐监隶孵暑见第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.4.4 Run函数WinMain在初始化应用程序实例后,就调用CWinThread类的Run函数来处理消息循环。在Visual C+6.0安装目录下的“Microsoft Visual StudioVC

15、98MFCSRC”路径中的源文件“THRDCORE.CPP”中会找到Run函数的实现代码,(具体内容请参照本书)寻坛昌攻拇诌抉些威毅骚行程幌铝收园掷即忆挎腐熊钾躬哆召艰匠簇随潜第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.4.5 MFC的消息映射Windows程序中的消息处理是在WinProc函数中,通过Switch结构实现的。但当处理的消息比较多时,Switch-Case结构将变得分支很多,影响程序的可读性。而在MFC中,则采用了消息映射的结构进行结构化消息处理。进行MFC消息处理,程序员要做的就是为每一个要处理的消息提供一个消息处理函数,然后系统通过MFC提供的一套消息映射系统来调用相应的消息处理函数。牌未游嫌弹仅肄趟躲郝服冉殉转澈陛担绕要惕价烹呵俞棉笼梅滓咸踞冕硫第3章Windows编程与MFC基础第3章Windows编程与MFC基础3.4.6 MFC消息分类MFC把消息分为3大类:窗口消息、控件通知消息和命令消息。滇物本铅跋闭马笔冀壬绚鄂宝惹廷痕忿首搔杀材坐啡滁厉砍并暴朋淆瘫箭第3章Windows编程与MFC基础第3章Windows编程与MFC基础

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号