版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章Win32API与WINDOWS应用程序保定职业技术学院第2章Win32API与
WINDOWS应用程序2.1Windows编程基础知识2.2Windows编程模式2.3Windows程序的基本构成2.4Windows应用程序框架举例2.5专题讨论与作业设计2.1Windows编程基础知识VisualC++开发Windows应用程序的三种方法:第一种是使用Windows提供的API函数。第二种是直接使用微软提供的MFC类库。第三种是使用公共语言运行库(CLR)编程。2.1Windows编程基础知识窗口的概念从用户的角度讲,窗口是屏幕上与一个应用程序相对应的矩形区域,是用户与应用程序之间的图形化的接口。每当用户打开一个应用程序时,应用程序就会创建并显示一个窗口;当用户操作窗口中的对象时,窗口就会做出反映;关闭主窗口时就会终止应用程序的运行;通过选择应用程序窗口,就会选择与窗口对应的应用程序。2.1Windows编程基础知识窗口的概念从程序员的角度讲,窗口是Windows应用程序的基本操作单元,是系统管理应用程序的基本单位,是应用程序与用户之间交互的接口。应用程序的运行过程就是窗口内部、窗口与窗口之间、窗口与系统之间进行数据处理和数据交换的过程。因此,编写应用程序就是要创建一个或多个窗口,管理多个窗口之间的数据处理与交换。2.1Windows编程基础知识事件驱动的概念
Windows应用程序的运行控制是由事件或消息的发生来实现的,也就是事件或消息的产生驱动应用程序的消息处理函数,对事件做出响应或处理相应的消息。所谓事件,对系统来讲就是发生了某件事,例如按下键盘上的某一个键时,就会发生一个键盘按下的事件,同时产生一个按键消息。单击了鼠标的左键,就会产生一个鼠标左键单击的事件,同时产生了一个描述鼠标左键单击事件的消息。Windows应用程序的消息处理函数就会处理这个事件所产生的消息,这样就驱动了应用程序的运行。2.1Windows编程基础知识消息及其应用1.消息在Windows操作系统中,消息(Message)是对发生事件的报告信息,是Windows的一种数据结构,其中包括含有消息的编号、消息发生时的一些参数,以及处理这个消息的指针等。在Windows中消息往往用一个结构体MSG来表示,结构体的定义如下:2.1Windows编程基础知识消息及其应用typedefstruct
tagMSG{HWNDhwnd;UINTmessage;WPARAM#wParam;LPARAM#lParam;DWORDtime;POINTpt;}MSG;2.1Windows编程基础知识消息及其应用事件驱动是围绕着消息的产生与处理展开的,是靠消息的循环处理机制来实现的。如上所述,当用户单击应用程序的窗口时,就产生了一个鼠标单击事件,同时也就产生了一个鼠标单击消息,Windows操作系统通过调用窗口过程来发送这个消息,窗口过程根据此消息进行处理,然后将控制返回给Windows,这就是Windows的面向对象的体系结构,这也是Windows面向对象的程序设计基础。2.1Windows编程基础知识消息及其应用2.Windows应用程序常用消息消息三种:第一种是Windows消息,此类消息主要包括以前缀WM_开头的消息,WM_COMMAND除外。第二种是控件通知消息,此类消息包括从控件和其它子窗口发送到其父窗口的WM_COMMAND通知消息。第三种是命令消息,此类消息包括用户界面对象(菜单、工具栏按钮和快捷键)发出的WM_COMMAND通知消息2.1Windows编程基础知识消息及其应用3.Windows的消息驱动模型每一个Windows应用程序的执行,Windows操作系统都会为该程序建立一个消息队列,这个消息队列用来存放该程序可能建立的各个不同窗口的消息。在应用程序中有一段代码,叫做“消息循环”,用来从应用程序的消息队列里取出消息,并将它们发送给相应的窗口处理过程。2.1Windows编程基础知识句柄句柄(Handle)是一个4字节长的整数值,是应用程序中不同对象或同类对象中不同实例的标识,它是Windows应用程序设计的基础。例如,一个窗口、按钮、图标、设备描述表、输出设备等对象都需要一个惟一的句柄来标识,有了对象的这个句柄,用户就拿到了对象的“把手”,应用程序就有了访问对象的权限,通过句柄才可以访问到相应的对象信息。2.2Windows编程模式过程程序过程设计由一个开始、明显的过程和一个结束三部分组成,程序直接控制事件或过程的顺序,顺序是事先规定好的,用户不能随意的更改输入数据的顺序。2.2Windows编程模式事件驱动程序事件驱动程序设计是围绕着消息的产生与处理展开的,消息的产生顺序不会按照程序员任何预定的顺序执行的,而是按照用户对应用程序使用的具体情况决定的。在计算学生的平均成绩时,事件驱动的程序执行顺序是由用户操作的顺序决定的。2.3Windows程序的基本构成应用程序的组成项目文件(*.vcproj):这是用应用程序向导生成的VC++项目的主项目文件。主应用程序源文件(*.cpp):应用程序的主函数及窗口函数都在此文件中。资源文件(*.rc):这是程序使用的所有MicrosoftWindows资源的列表。它包含存储在RES子目录下的图标、位图和光标。此文件可在MicrosoftVisualC++中直接编辑。标准文件:它包含Resource.h标准的头文件,它定义新的资源ID,MicrosoftVisualC++读取和更新此文件。StdAfx.h、StdAfx.cpp是预编译头(PCH)文件以及预编译类型文件。2.3Windows程序的基本构成源程序组成结构1.WinMain函数在WinMain函数中一般要完成以下几个任务:定义窗口类结构体变量,并初始化。在Windows操作系统中注册窗口类。创建、显示并更新窗口。启动消息循环,不断接受消息并交给窗口函数处理,接到关闭窗口的消息后结束程序的执行。2.3Windows程序的基本构成源程序组成结构2.窗口消息处理函数:主函数WinMain创建窗口后,不断的接收应用程序消息队列中的消息,并通知Windows操作系统,Windows操作系统再将消息分发给相应的窗口处理函数,窗口处理函数负责消息的处理,窗口函数与主函数的关联是在定义窗口类时指定的。2.3Windows程序的基本构成源程序组成结构3.数据类型数据类型说明数据类型说明WORD16位无符号整数UINT32位无符号整数LONG32位有符号整数BOOL布尔值DWORD32位无符号整数LPTSTR指向字符串的32位指针HANDLE对象的句柄LPCTSTR指向字符串常量的32位指针2.4Windows
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东科学技术职业学院《过程控制专题》2023-2024学年第一学期期末试卷
- 广东工业大学《大数据和人工智能导论》2023-2024学年第一学期期末试卷
- 广东创新科技职业学院《CPA税法》2023-2024学年第一学期期末试卷
- 小学生口才表演课件图片
- 培训学校课件
- 广东碧桂园职业学院《音乐律动(一)》2023-2024学年第一学期期末试卷
- 《如何品鉴葡萄酒》课件
- 赣南医学院《国际商法与公司治理》2023-2024学年第一学期期末试卷
- 《外周血管介入护理》课件
- 赣东学院《实验室安全与法规》2023-2024学年第一学期期末试卷
- 100以内进退位加减法口算题每天60道
- 外科手术备皮范围
- 2024初中数学竞赛八年级竞赛辅导讲义专题07 分式的化简与求值含答案
- GB 1886.174-2024食品安全国家标准食品添加剂食品工业用酶制剂
- 评判创业计划书
- 银行信访工作培训课件
- 北京市西城区2023-2024学年部编版七年级上学期期末历史试卷
- T-CPIA 0054-2023 光伏发电系统用柔性铝合金电缆
- 广东省博物馆
- 徐州市2023-2024学年九年级上学期期末道德与法治试卷(含答案解析)
- 农业信息化实现农业现代化的数字化转型
评论
0/150
提交评论