c+Windows应用程序.ppt
《c+Windows应用程序.ppt》由会员分享,可在线阅读,更多相关《c+Windows应用程序.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3讲 Windows应用程序 GUI程序Visual C+Visual C+程序设计程序设计程序设计程序设计主讲:李贵荣主讲:李贵荣主讲:李贵荣主讲:李贵荣湖北汽车工业学院湖北汽车工业学院湖北汽车工业学院湖北汽车工业学院1本讲内容p1 1 WindowsWindows操作系统简介操作系统简介p2 Windows2 Windows编程基础知识编程基础知识p3 3 WindowsWindows消息消息p4 4 WindowsWindows中的消息处理机制(事件驱动)中的消息处理机制(事件驱动)p5 5 WindowsWindows程序的基本结构程序的基本结构p6 6 应用举例应用举例 2Wind
2、ows操作系统简介pWindows操作系统的发展u1983年12月首次推出Windows系统的第一个版本的,命名为Windows v1.0 u1985年推出了Windows v1.1版本u1987年10月,Microsoft发行了Windows系统的另一个重要版本Windows v2.0u1990年5月,Microsoft公司发行了一个划时代的版本Windows v3.0u1992年4月,Microsoft公司又推出了支持象动态数据交换、对象连接和嵌入、多媒体等功能的Windows v3.1版本3Windows操作系统简介pWindows操作系统的发展u1995年,Microsoft公司隆重推
3、出了Windows 95u1998年,Microsoft公司推出了Windows 98版本u1999年12月,微软公司发行32位图形商业性质的Windows 2000操作系统,基于NT技术,Windows NT系列是纯32位操作系统,使用先进的NT核心技术,非常稳定。u2000年9月,微软公司发行Windows ME是一个16位/32位混合的Windows系统。u2001年8月,Windows XP是基于Windows 2000代码的产品,同时拥有一个新的用户图形界面。4Windows操作系统的特点p图形化的用户界面Windows系统及Windows应用程序的用户可以得到一致的用户界面所带来的
4、许多认识的方便。p多任务机制Windows向用户提供非常重要的多任务功能。p硬件即插即用功能Windows提供了各种设备驱动程序支持各种各样的外部设备。p与设备无关的图形图像机制5Windows编程基础pWindows界面 Win32操作系统为我们提供了一组预先构造好的界面元素或控件来建立GUI外观和作用相像的应用程序。这种方法使用户熟悉Windows 应用,并使用户能较容易地把操作技术的有关知识从熟悉的软件应用传递到新的不熟悉的软件应用中。我们通过编程还可以自定义控件及其式样,给界面设计人员提供创作空间。6Windows编程基础pWindows是一种基于图形界面的多任务操作系统。基于Wind
5、ows的程序有着相同的外观和命令结构。对用户 来说,学习使用Windows应用程序变得容易了。pWindows运行应用程序以硬件无关的方式来处理视频显示、键盘、鼠标、打印机、串行口以及系统时钟。尤其是标准化的图形用户界面,统一的界面使用图片或图标来代表磁盘驱动器、文件、子目 录以及其它操作系统的命令和动作。统一的用户界面也为程序员带来了好处。pWindows的多任务环境允许用户在同一时刻运行多个应用程序或同一个应用程序的多个实例。一个应用程序可能处于激活状态。激活的应用程序是指它正接收用户的输入。同一时间有也只能有一个应用程序处于激活状态,但可以有任意个数的并行运行的任务。Windows提供了
6、大量的内建 函数以方便地使用弹出菜单、滚动条、对话框、图标和其他一些友好的用户界面应该具有的特性。可以很方便地使用常见菜单和对话框的内建函数。所有的菜单都具有相同风格的键盘和鼠标接口,因为是Windows而不是程序员在实现它。7Windows编程基础开发环境程序调试工具程序调试工具包括源程序语包括源程序语法检查、可执法检查、可执行程序修改和行程序修改和运行监视等运行监视等应用程序应用程序HelpHelp和和SetupSetup开发开发工具包工具包系统函数库和系统函数库和系统函数开发系统函数开发工具工具资源管理器资源管理器包括图形化窗包括图形化窗口及组成元素口及组成元素的多种对象的的多种对象的编
7、辑器编辑器可选择并构成具体可选择并构成具体语句或源程序结构语句或源程序结构的例程库及的例程库及Help源程序编辑源程序编辑器和编译器器和编译器可视化开发可视化开发系统集成了一系系统集成了一系列系统可用资源列系统可用资源和开发工具和开发工具8Windows编程基础开发工具p面向对象编程语言uC+、Java、Delphi、VB.p编程对象组件(对象)u窗口u对话框、按钮、资源(位图、图标、字符串)u开发Windows相当大的程度上在创建对象、修改组件对象的属性p对象的特征u静态属性+动态行为p编程方法传统编写法:API交互式方法:MFC9Windows编程基础API图形设备图形设备(GDI)函函数
8、数:实现与设备:实现与设备无关的图形操作无关的图形操作功能功能APIAPI函数函数的功能的功能为应用程序为应用程序提提供供Windows系统系统特殊函数特殊函数及及数据结构数据结构Win应用程序应用程序可以利用标准可以利用标准大量大量API函数函数调用系统功能调用系统功能是是Win系统系统与与Win应用程序应用程序间的间的标准程序标准程序接口接口窗口管理函数窗口管理函数实现窗口的创实现窗口的创建、移动和修建、移动和修改功能改功能系统服务函数系统服务函数:实现与操作系统实现与操作系统有关的多种功能有关的多种功能10Windows编程基本概念窗口p窗口窗口边界窗口边界工作区工作区控制菜单框控制菜单
9、框下拉菜单下拉菜单水平滚动条水平滚动条垂直滚动条垂直滚动条最大化按钮最大化按钮最小化按钮最小化按钮标题栏标题栏11Windows编程基本概念界面组件p用户界面(窗口)的组成u窗口主边框和窗口子边框窗口主边框和窗口子边框u用户区用户区u控制菜单框控制菜单框u标题条标题条u菜单条菜单条u工具条工具条u水平滚动条和垂直滚动条水平滚动条和垂直滚动条u最大化最大化/还原窗口按钮还原窗口按钮u最小化按钮最小化按钮u关闭按钮关闭按钮u状态条状态条.12Windows编程基本概念界面组件p用户界面组件皆为对象p将世界看成是一组彼此相关并相互通信的实体即对象组成,每个对象有一个名字来标识。例如,当看见一辆汽车时
10、,所见到的是一辆汽车,而不是一大堆原子。可以将汽车分解为车轮、发动机、车门、油箱等,它们都是具体的实体即对象。p窗口本身及其成组成部分均可以看成对象。窗口的显示样式(效果)均可以改变或设置相应组件的属性来实现;窗口的动作也由组件之间发送消息来实现。13Windows编程基本概念界面组件p对象之间的通信被称为发送消息。p即一个对象请求另一个对象执行某种方式的操作。例如,交叉路口的红灯“请求”驾驶员停车,驾驶员在接受到消息之后,他所执行的动作是踏下制动踏板,这有向汽车发送了一条消息,汽车在接受到此消息之后,又将该消息分解之后发送到相关的对象上:制动器作用于车轮上,将动能转变成为势能,使车速降下来;
11、尾灯又向它后面的其它车辆的驾驶员发送消息;各种仪表盘向驾驶员反馈出所发送的消息的动作结果。14Windows编程基本概念界面组件p从编程角度看,对象是内存中一块有名的存储单元。p所谓变量就是一种数据对象,但对象的概念比变量的含义更广义,通常将对象定义成为包含有数据和代码的内存区域,数据表征对象的特征(属性),而代码用于响应消息,使对象进行某些动作(行为)。从屏幕上显示的一个可视的窗口对象为例,我们可以对比分析一下用户心目中的对象和程序员心目中的对象的关系。窗口对象的特征,例如颜色、长度、显示的内容等,在程序中对应为数据,用户对窗口对所做的操作,例如移动窗口、改变窗口的大小等,使得用户向窗口发送
12、了消息,这些消息引起了计算机(内存中的)对象执行相应的代码,代码执行的结果改变了对象中的数据,使对应的可视对象的位置和大小发生了变化。15Windows编程基本概念界面组件p发送消息类似于标准的函数调用,但消息也有函数调用中没有的特性。例如,消息始终在执行一选择机制,其参数与其它消息区别开来,从而告诉该对象完成什么样的操作。一个函数名始终指向内存中该函数的代码所位于的确定地址,消息并不指向内存中的某地址,但却告诉接受消息的对象要引用的内存地址是什么。p函数不仅说明操作,而且还要执行如何完成该操作的方法。消息只说明该操作,在对象中定义的方法说明如何完成该操作。当向不同的对象发送相同的消息时,所执
13、行的方法是不同的。16Windows编程基本概念句柄p句柄是Windows编程的基础。pWindows应用程序中存在许多对象,例如选单、窗口、图标、内存对象、位图、刷子、设备对象和程序实例等,在Windows中,对象使用句柄进行标识,通过使用一个句柄,应用程序可以访问一个对象。u所谓句柄是Windows使用的一种无重复整数。u句柄主要用来标识应用程序中的一个对象。u句柄只能进行赋值、与另句柄比较及是否NULL操作。常用句柄类型及其说明常用句柄类型及其说明HWNDHWND窗口句柄窗口句柄HDCHDC设备环境句柄设备环境句柄HBITMAPHBITMAP位图句柄位图句柄HCURSORHCURSOR光
14、标句柄光标句柄HICONHICON图标句柄图标句柄HFONTHFONT字体句柄字体句柄HMENUHMENU菜单句柄菜单句柄HPENHPEN画笔句柄画笔句柄HFILEHFILE文件句柄文件句柄HBRUSHHBRUSH画刷句柄画刷句柄HINSTANCEHINSTANCE 当前实例句柄当前实例句柄17句柄句柄是一个句柄是一个4字节长的数值,用于标识字节长的数值,用于标识应用程序中不同的应用程序中不同的对象对象和和同类对象中不同类对象中不同的实例同的实例窗口窗口按钮按钮图标图标滚动条滚动条输出设备输出设备控制控制文件文件应用程序通过应用程序通过句柄访问相应句柄访问相应的对象信息的对象信息18Windo
15、ws编程基本概念消息p Windows应用程序利用Windows消息(Message)与应用程序及系统进行信息交换。p消息内容用一个结构体MSG来描述:typedef struct tagMSG HWND hwnd;/窗口句柄,为null,则可检索所有驻留在消息队列中的消息 UINT message;/消息值,由Windows.h头文件中的宏定义来标识 WPARAM wParam;/字参数,有关消息的附加信息,不同消息其值有所不同 LPARAM lParam;/长字参数 DWORD time;指定消息送至队列的时间 POINT pt;/指定消息发送时屏幕光标的位置,其数据类型POINT也是一个
16、结构体MSG;typedeftypedef structstruct tagPOINTtagPOINT LONG x LONG x;LONG y;LONG y;POINT;POINT;19消息号:由事先定义好的消息名标识消息号:由事先定义好的消息名标识字参数字参数(wParam):用于提供消息的用于提供消息的附附加信息加信息长字参数长字参数(lParam):用于提供消息的用于提供消息的附加信息附加信息消消息息附加信息附加信息与具体与具体消息号的值有关,消息号的值有关,在在Win中消息用中消息用结构体结构体MSG表示表示20 VC中存在几种系统定义的消息分类,不同的前缀符号经常用中存在几种系统定
17、义的消息分类,不同的前缀符号经常用于消息宏识别消息附属的分类,系统定义的消息宏前缀如下:于消息宏识别消息附属的分类,系统定义的消息宏前缀如下:BM表示按钮控制消息表示按钮控制消息CB表示组合框控制消息表示组合框控制消息DM表示默认下压式按钮控制表示默认下压式按钮控制消息消息EM表示编辑控制消息表示编辑控制消息LB表示列表框控制消息表示列表框控制消息SBM表示滚动条控制消息表示滚动条控制消息WM表示窗口消息表示窗口消息窗口管理消息窗口管理消息初始化消息初始化消息输入消息输入消息系统消息系统消息剪贴板消息剪贴板消息控制处理消息控制处理消息控制通知消息控制通知消息滚动条通知消息滚动条通知消息非用户区
18、消息非用户区消息MDI消息消息DDE消息消息应用程序自定义的消应用程序自定义的消息息Windows编编程常用消息程常用消息21此外,相似的消息还有:此外,相似的消息还有:lWM_LBUTTONUP:放开鼠标左键时产生;放开鼠标左键时产生;lWM_RBUTTONDOWN:单击鼠标右键时产生;单击鼠标右键时产生;lWM_RBUTTONUP:放开鼠标右键时产生;放开鼠标右键时产生;lWM_LBUTTONDBLCLK:双击鼠标左键时产生;双击鼠标左键时产生;lWM_RBUTTONDBLCLK:双击鼠标右键时产生。双击鼠标右键时产生。lParam高字节包含当前光标的高字节包含当前光标的Y坐标值坐标值低字
19、节包含当前光标的低字节包含当前光标的X坐标值坐标值wParam包含一整包含一整数值以标识鼠标数值以标识鼠标键的键的按下状态按下状态MK_LBUTTON按下鼠标左键按下鼠标左键MK_MBUTTON按下鼠标中键按下鼠标中键MK_RBUTTON按下鼠标右键按下鼠标右键1.WM_LBUTTONDOWN1.WM_LBUTTONDOWN:产生单击鼠标左键的消息产生单击鼠标左键的消息产生单击鼠标左键的消息产生单击鼠标左键的消息Windows应用系统常用消息22 系统键是指实现系统操作的组合键,例如系统键是指实现系统操作的组合键,例如Alt与某与某个功能键的组合以实现系统菜单操作等。个功能键的组合以实现系统菜
20、单操作等。3.WM_ CHAR3.WM_ CHAR:按下一个非系统键时产生的消息按下一个非系统键时产生的消息按下一个非系统键时产生的消息按下一个非系统键时产生的消息wParam 为为按键的按键的ASCII码码1Param 与与WM_KEYDOWN的相同的相同相似的消息还有相似的消息还有WM_KEYUP,在放开非系统键时产生在放开非系统键时产生2.WM_KEYDOWN2.WM_KEYDOWN:按下一个非系统键时产生的消息按下一个非系统键时产生的消息按下一个非系统键时产生的消息按下一个非系统键时产生的消息wParam:按下键的:按下键的虚拟键码虚拟键码,用以标识按下或释放的键,用以标识按下或释放的
21、键1Param:记录了按键的重复次数、扫描码、转移代码、先前键的状:记录了按键的重复次数、扫描码、转移代码、先前键的状态等信息。态等信息。23wParam:未用未用1Param:包含一个指向包含一个指向CREATESTRUCT数据结构的指针数据结构的指针wParam和和1Param均未用。均未用。wParam和和1Param均未用。均未用。4.WM_CREATE4.WM_CREATE:由由由由CreateWindowCreateWindow函数发出的消息函数发出的消息函数发出的消息函数发出的消息5.WM_CLOSE5.WM_CLOSE:关闭窗口时产生的消息关闭窗口时产生的消息关闭窗口时产生的消
22、息关闭窗口时产生的消息6.WM_DESTROY6.WM_DESTROY:由由由由DestroyWiodowDestroyWiodow函数发出的消息函数发出的消息函数发出的消息函数发出的消息24用户区移动或显示用户区移动或显示用户窗口改变大小用户窗口改变大小程序通过滚动条滚动窗口程序通过滚动条滚动窗口下拉式菜单关闭并需要恢复被覆盖的部分下拉式菜单关闭并需要恢复被覆盖的部分Windows清除对话框等对象,并需要恢复被覆盖的部分清除对话框等对象,并需要恢复被覆盖的部分均产生均产生WM_PAINTWM_PAINT消息消息7.WM_QUIT7.WM_QUIT:由:由:由:由PostQuitMessage
23、PostQuitMessage函数发出的消息函数发出的消息函数发出的消息函数发出的消息退出应用程序时发出的消息退出应用程序时发出的消息退出应用程序时发出的消息退出应用程序时发出的消息wParamwParam:含退出代码含退出代码含退出代码含退出代码,标识程序退出运行时的有关信息标识程序退出运行时的有关信息标识程序退出运行时的有关信息标识程序退出运行时的有关信息1Param1Param:未用未用未用未用8.WM_PAINT8.WM_PAINT25启动启动输入姓名输入姓名输入第一次测试成绩输入第一次测试成绩输入第二次测试成绩输入第二次测试成绩输入第三次测试成绩输入第三次测试成绩计算平均成绩计算平均
24、成绩结束结束过程驱动方法计算平均成绩过程驱动方法计算平均成绩启动启动消息处理消息处理结束结束输入姓名输入姓名输入第一次成绩输入第一次成绩输入第二次成绩输入第二次成绩输入第三次成绩输入第三次成绩计算平均成绩计算平均成绩事件驱动方法计算平均成绩事件驱动方法计算平均成绩三、三、三、三、WindowsWindows中的事件驱动程序设计中的事件驱动程序设计中的事件驱动程序设计中的事件驱动程序设计26一个完整的一个完整的Windows应用程序应用程序通常由通常由五种类型五种类型的的文件组成。文件组成。1.C1.C语言源程序文件语言源程序文件2.2.头文件头文件3.3.模块定义文件模块定义文件4.4.资源描
25、述文件资源描述文件5.5.项目文件项目文件四、四、Windows应用程序组成及编程步骤应用程序组成及编程步骤 1.应用程序的组成应用程序的组成27入口函数入口函数WinMain窗口函数窗口函数WndProcWndProcWindows应用程序应用程序构成基构成基本框架本框架包含各种包含各种数据类型、数据类型、数据结构数据结构与函数等与函数等WinMain和和WndProc是是Windows应用程序的主体应用程序的主体 2、源程序组成结构、源程序组成结构28(1)WinMain函数函数三个基本的组成部分:三个基本的组成部分:函数说明函数说明、初始化初始化和和消息循环消息循环功能功能注册窗口类,建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Windows 应用程序
限制150内