《visual c++实用教程》ppt课件第4章:windows程序设计的基本概念

上传人:aa****6 文档编号:54876130 上传时间:2018-09-21 格式:PPT 页数:47 大小:443KB
返回 下载 相关 举报
《visual c++实用教程》ppt课件第4章:windows程序设计的基本概念_第1页
第1页 / 共47页
《visual c++实用教程》ppt课件第4章:windows程序设计的基本概念_第2页
第2页 / 共47页
《visual c++实用教程》ppt课件第4章:windows程序设计的基本概念_第3页
第3页 / 共47页
《visual c++实用教程》ppt课件第4章:windows程序设计的基本概念_第4页
第4页 / 共47页
《visual c++实用教程》ppt课件第4章:windows程序设计的基本概念_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《《visual c++实用教程》ppt课件第4章:windows程序设计的基本概念》由会员分享,可在线阅读,更多相关《《visual c++实用教程》ppt课件第4章:windows程序设计的基本概念(47页珍藏版)》请在金锄头文库上搜索。

1、第4章 Windows程序设计的基本概念,教学要点本章内容主要包括Windows应用程序的特点,VC两种编程模式都要用到的基本概念及利用API编写简单的Windows程序的方法与步骤。要求了解回调函数和图形设备接口概念、VC程序的命名规则和消息驱动机制,掌握窗口、实例、句柄、资源的概念,熟悉Windows图形用户界面中的元素,熟练掌握掌握建立Win32应用程序的步骤和WinMain()函数形参的含义。,4.1 Win 32编程特点4.2 Windows程序用到的基本术语4.3 开发Windows程序基本步骤 习题,4.1.1 Windows运行机制消息驱动4.1.2 应用程序与Windows操

2、作系统紧密相连4.1.3 图形界面4.1.4 Windows基本数据类型4.1.5 VC程序中的命名规则,4.1 Win 32编程特点,消息驱动,在别的程序设计语言中又叫事件驱动。在执行过程中,如果用户需要输入什么参数或用户需要作出选择,程序将等待用户的输入。只有用户提供了足够的数据程序才能继续进行下去,否则它将一直等待下去,应用程序不会自己选择其它的途径或完成其它的功能,用户也不能干预程序的运行过程。 在消息驱动的程序结构中,程序控制流程是由实际运行时各种事件的实际发生来触发,而事件的发生可能是随机的、不确定的,并没有预先的顺序。消息驱动是一种面向用户的程序设计方法,在程序设计过程中除了完成

3、所需要的程序功能之外,更多的是要考虑用户可能的各种输入消息,并有针对性地设计相应的处理程序。消息驱动程序设计还是一种被动式的程序设计方法,程序开始运行时,处于等待消息状态,当取得消息后就对其作出相应反应,处理完毕后又返回等待消息的状态。消息驱动的程序就是一个不断产生消息和处理消息的过程是一个更加模块化、更加独立的程序。,4.1.1 Windows运行机制消息驱动,4.1.2 应用程序与Windows 操作系统紧密相连,利用VC进行Windows应用程序开发的一个显著特点就是,应用程序与操作系统的联系非常密切。对操作系统比较熟悉的人编制程序相对来说就轻松一些,反之,学会利用VC进行Windows

4、应用程序开发的人,往往会对操作系统有一个清晰的认识。设计C语言的目的就是进行操作系统的开发,C+的发明者Bijarne Stroustrup就是进行操作系统研究的一个学者。在Windows环境下开发程序时,绝对不能忽视操作系统所起的作用,因为我们时时刻刻在与操作系统打交道。 最明显和操作系统打交道的例子就是消息传递。消息与事件紧密相连,事件是源,消息是果,消息是一个事件的代表,程序运行过程中的任何一个事件都产生一个消息,比如按了键盘的某个键就会产生键盘的消息。,Windows程序设计是消息驱动的,消息传递是它的核心,而消息管理是由 Windows完成的,应用程序要获得消息就要从操作系统中获得。

5、应用程序有两种获得消息的方式:回调函数一经设计好,就成了Windows系统的扩展,就会在发生别的事件时,由操作系统自动调用该回调函数。在应用程序的任何地方找不到明显调用该函数的地方,用DOS编程观点来看,似乎此函数并没有用到,事实上回调函数不仅用到了,而且起了很大作用,正是通过它,应用程序才获得了消息,才知道当前发生了什么事件,才根据不同的事件采取不同的处理措施。,4.1.2 应用程序与Windows 操作系统紧密相连(续),1.应用程序调用Windows提供的获取消息函数,如GetMessage();2.由Windows调用程序员提供的一种特殊函数回调函数。,4.1.3 图形界面,Windo

6、ws支持丰富的图形用户界面对象,包括窗口、图标、对话框等。 1窗口 窗口是Windows图形界面中最重要的部分,是屏幕上与一个应用程序相对应的矩形区域,关闭了一个窗口后,相应的应用程序就被关闭。图4.1是一个典型的窗口外观。 2客户区客户区是窗口中最大的一块空白矩形区域,它是用户与系统进行交互的主要区域,一般用于显示应用程序的输出。 3标题栏标题栏位于窗口顶部,其中显示的文本一般用于标注应用程序的名称。标题栏的颜色反映该窗口是否是一个活动窗口。标题栏是属于非客户区域。,4菜单栏菜单栏用户最熟悉,它位于标题栏的下方,横跨窗口,上面列出了应用程序支持的大部分功能。 5图标一个用于提醒用户的小小图像

7、,它代表一个应用程序。当一个应用程序最小化时,就呈现为一个图标。 6光标Windows光标是显示在屏幕上的一个位图 ,用于响应鼠标或其它定位设备的操作。在应用程序中,常常通过改变光标形状来指出程序的操作状态。 7工具栏工具栏位于菜单栏下方,上面的位图按钮代表最常用的命令。让鼠标在某个按钮停一会,就会在按钮下方出现一个黄色的小窗口,里面显示该按钮的简单提示信息。,4.1.3 图形界面(续),8状态栏状态栏位于窗口底端,用于输出菜单的详细说明和其它一些提示信息。 9对话框对话框是一种特殊窗口,主要用于接收用户输入和输出。图4.1显示了一个Word中的“查找与替换”对话框。一般在选择菜单名称后面带有

8、省略号()的菜单项时会弹出一个对话框。 10控件对话框中包含的许多小窗口都是控件。如“查找与替换”对话框上的“查找内容(N)后就是一个编辑框控件,“取消”操作就是一个按钮控件。,4.1.3 图形界面(续),图4.1 窗口外观,4.1.4 Windows基本数据类型,在标准的C/C+语言中,int、char、float、double都是常见的数据类型,而在32位Windows的C/C+开发平台中,为了满足数据定义需要,又添加了一系列新的数据类型。表4.1列出了较为常见的数据类型,大体包括了字符型、整型、浮点型、布尔型、指针型以及Windows应用程序所特有的句柄型,表示指针型的数据类型往往以P或

9、LP作为前缀,而句柄型则总是冠以H。 在Windows应用程序中,不可避免地要使用各种各样的句柄。简单地说,它是用来标识诸如菜单、图标、窗口、内存块、输出设备等信息的,通过它可以访问各种资源。句柄并非对象所在的地址指针,它是作为系统内部表的索引值来使用的。譬如说,一个窗口打开之后,对应内存中的一个内存块,这个窗口所在的内存块地址往往会由操作系统作动态调整,但其句柄却不会随之变化,我们不必关心其地址的变化,而是简单地通过作为窗口标识的句柄来访问这个窗口。如果该应用程序有几个副本在同时运行,那么每个这种窗口都会有一个各不相同的句柄。除了前面介绍的基本数据类型外,前面章节中所介绍的MFC中的CStr

10、ing、CTime、CPoint、CSize、CRect等都是经常用到的数据类型。,表4.1 基本数据类型,表4.1基本数据类型(续),表4.1基本数据类型(续),*4.1.5 VC程序中的命名规则,1匈牙利命名规则匈牙利命名法成为大家一致使用的变量名约定,是事实上的标准,它的名字来源于它的匈牙利籍开发者,Microsoft程序员Charles Simonyi。匈牙利命名规则建议变量名称以一个或多个小写字母开头,这些小写字母用以标识其变量类型,类型标识字母的下一个字母一般采用大写。类型定义使用相同的类型标识符作为前缀,唯一不同的是,类型定义名称一般全部使用大写。例如,变量iNum自身名称就说明

11、它为整型,变量hWnd说明其为指向应用程序窗口的句柄,变量lpszString表示它是一个指向以NULL结束的字符串的长指针。表4.2列出了一般的匈牙利命名原则。,表4.2 匈牙利命名规则约定,2.其它前缀约定除了匈牙利命名规则使用的前缀外,Windows Application FrameWorks(AFX)和MFC对象类使用的其它一些前缀在表4.3中列出。在这组前缀中,只有两个C类前缀和m_成员变量可能在自己写的程序代码中出现,其余前缀主要用于MFC/Windows库中。 3. AFX和AppWizard前缀。VC AppWizard和ClassWizard不但能生成大量有用代码帮助你链接

12、已有代码和对话框资源元素,而且还能产生使用标准符号前缀的标识符。表4.4应用程序框架符号前缀,*4.1.5 VC程序中的命名规则(续),表4.3 AFX和MFC前缀,表4.4 应用程序框架符号前缀,4.2 Windows程序用到的基本术语,4.2.1 窗口 4.2.2 实例4.2.3 句柄4.2.4 资源4.2.5 窗口函数4.2.6 图形设备接口4.2.7 回调函数,4.2.1 窗 口,从表面理解,窗口无非是一个矩形区域。从程序运行的内存组织角度看,窗口对应的是一个数据结构WNDCLASS,从用户的角度看,窗口是用户输入输出数据的一个接口,通过它,Windows应用程序才能取得外部的数据并把

13、处理后的数据显示在屏幕矩形区域中。从程序的内部处理过程看,每一个窗口对应着一个应用程序的消息处理队列,应用程序主要通过窗口函数来对用户的输入进行处理。可见窗口是Windows应用程序基本操作单元,是应用程序与用户之间交互的接口环境,也是系统管理应用程序的基本单位。编写一个Windows的应用程序首先应创建一个或多个窗口,随后应用程序的运行过程即是窗口内部、窗口和窗口之间、窗口和系统之间进行数据处理和数据交换的过程。作为一个Windows程序设计人员,我们首先要搞清Windows这个数据结构。,4.2.2 实例,一个实例代表一个可执行程序在内存中的拷贝。在Windows系统中,可执行程序的每次运

14、行都代表完全独立的进程,各个进程都有自己的虚拟地址空间。若一个应用程序执行许多次,在内存中就有多个程序的拷贝,也可以说是一个应用程序在内存中有多个实例。应用程序的实例句柄对于管理整个应用程序的资源很重要,因此我们常常在Windows程序的入口WinMain()处将实例句柄保存在全局变量中。,4.2.3 句柄,句柄这个概念在Windows的程序设计中常常碰到。Windows对绝大多数对象的引用都是通过句柄来进行的。 在Windows环境中,句柄可以用来标识模块、任务、实例、文件、内存块、菜单、控件、字体、资源、,包括图标、光标、字符串、GDI对象,包括位图)、画刷、元文件、调色板、画笔、区域以及

15、设备描述表。Windows程序并不是用物理地址来标识一个内存块、文件、任务或动态装入模块的,相反,Windows API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。 句柄是内部表格的索引值,Windows通过句柄到内部表格中去存取相关信息。因此应用程序只能处理到句柄的层次,并不能直接获取表格中的数据。表4.5是常见的句柄类型及其含义。,表4.5 常见的句柄类型及其含义,4.2.4 资源,一个Windows程序,往往有菜单、工具条、对话框、位图、图标、加速键、字符串等,这些元素都被称为资源。应用程序不仅可以使用操作系统所提供的资源,而且可以在VC开发环境中利用相应的

16、资源编辑器建立自己的资源。应用程序的资源被定义在.RC文件中,资源可以预先编辑、独立编译,最后与可执行模块链接在一起,形成可独立执行的.EXE文件或动态链接库文件.DLL。当应用程序需要这些资源时,可以利用Windows的API函数将这些资源调入。 可见,Windows应用程序的资源是自己携带的,这要比将资源作为外部文件方便的多。由于资源与程序代码是分离的,“招之即来,挥之即去”,当使用时才调入内存,这减少了程序运行时对内存的消耗量。,4.2.5 窗口函数,由于窗口是应用程序与用户交互的接口,当窗口接受到输入时,必定交给某个函数加以处理,这个负责处理消息的函数就是窗口函数,它决定了当一个消息被接收时所采取的动作。窗口函数是一个对每一个消息利用switch语句进行处理的函数,它是Windows消息驱动机制的发动机。下一节以一个具体的实例来详细解释。,4.2.6 图形设备接口,

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

最新文档


当前位置:首页 > 大杂烩/其它

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