Windows编程基础知识.ppt
《Windows编程基础知识.ppt》由会员分享,可在线阅读,更多相关《Windows编程基础知识.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Windows编程编程基础知识基础知识 内容提要内容提要n n1 Windows1 Windows编程概述编程概述n n2 2 基本概念基本概念n n3 Windows3 Windows程序基本结构程序基本结构n n4 4 程序示例程序示例1.1.Windows编程概述编程概述1 Windows编程编程nWindws编程编程 在微软的在微软的Windows操作系统下编程操作系统下编程n使用的工具使用的工具微软公司和其他公司(微软公司和其他公司(Boland等)在该操作等)在该操作系统下提供了了很多系统下提供了了很多可视化的开发系统可视化的开发系统平台,如平台,如VC+、VB、BC、Delphi
2、等。等。n我们使用我们使用VC+1 Windows编程(续)编程(续)可视化开发系统可视化开发系统(资源和工具的集成资源和工具的集成)源程序源程序编辑器编辑器编译器编译器调试工具调试工具语法检查语法检查程序修改程序修改运行监视运行监视应用程序应用程序Help和和Setup开发工具开发工具函数库和函数库和系统函数系统函数开发工具开发工具资源管理器资源管理器各种窗口和各种窗口和控件的编辑器控件的编辑器例程库例程库及及Help其他其他功能功能2 Windows程序特点程序特点nWindows程序特点程序特点 1图形用户界面(窗口)统一、友好图形用户界面(窗口)统一、友好 2独立于设备的图形操作(独立
3、于设备的图形操作(GUI)3支持多任务机制(多线程)支持多任务机制(多线程)4事件驱动的程序设计(消息队列机制)事件驱动的程序设计(消息队列机制)5程序和资源分开、资源共享程序和资源分开、资源共享 6支持应用程序间的数据交换(剪贴板等)支持应用程序间的数据交换(剪贴板等)2 Windows程序特点(续)程序特点(续)n一个简单的一个简单的Windows程序程序#include#include#include#include intintintint CALLBACK CALLBACK CALLBACK CALLBACK WinMainWinMainWinMainWinMain(HINSTANC
4、E(HINSTANCE(HINSTANCE(HINSTANCE hInstancehInstancehInstancehInstance,HINSTANCE HINSTANCE HINSTANCE HINSTANCE hPrevInstancehPrevInstancehPrevInstancehPrevInstance,LPSTR LPSTR LPSTR LPSTR lpCmdLinelpCmdLinelpCmdLinelpCmdLine,intintintint nCmdShownCmdShownCmdShownCmdShow)/产生一个问候小窗口产生一个问候小窗口产生一个问候小窗口产生一
5、个问候小窗口 MessageBoxMessageBoxMessageBoxMessageBox(NULL,(NULL,(NULL,(NULL,“Hello World!Hello World!Hello World!Hello World!”,“Say HelloSay HelloSay HelloSay Hello”,MB_OK);,MB_OK);,MB_OK);,MB_OK);returnreturnreturnreturn 1;1;1;1;3 Windows程序设计方法程序设计方法n传统式写法传统式写法 使用使用C语言语法规范的语言语法规范的API函数函数(Application Pro
6、gramming Interface)n交互式写法交互式写法使用使用C+语法规范的语法规范的MFC类库类库(Microsoft Foundation Class)n其他写法其他写法使用模板技术等的使用模板技术等的ATL模板库模板库(ActiveX Template Library)和和组件技术组件技术等等1.2.基本概念基本概念1 Windows程序及对象程序及对象nWindows应用程序使用的界面是由各种应用程序使用的界面是由各种图形元素组成的图形元素组成的图形界面图形界面n各个各个图形元素图形元素具有不同的功能具有不同的功能n应用程序的用户主要是通过应用程序的用户主要是通过键盘键盘和和鼠标
7、鼠标对应用程序界面上的图形元素进行操作对应用程序界面上的图形元素进行操作来与来与Windows应用程序进行应用程序进行交互交互的的1 Windows程序及对象(续)程序及对象(续)n在在Windows程序(系统)中,存在着许多程序(系统)中,存在着许多与与DOS应用程序不同的复杂应用程序不同的复杂对象对象n对象和句柄对象和句柄Windows的程序中,的程序中,对象对象是具有规范形态和是具有规范形态和操作模式的部件,例如窗口、按钮、滚动条等;操作模式的部件,例如窗口、按钮、滚动条等;Windows把为这种复杂对象所定义的标识叫把为这种复杂对象所定义的标识叫做做句柄,句柄,应用程序过句柄访问相应的
8、对象信息。应用程序过句柄访问相应的对象信息。n句柄实际上在句柄实际上在C/C+中实现为中实现为指针指针(或认(或认为其一个长度为为其一个长度为4字节长整数值)字节长整数值)1 Windows程序及对象(续)程序及对象(续)常用常用句柄句柄类型类型HWNDHWND窗口句柄窗口句柄HINSTANCEHINSTANCE 当前实例句柄当前实例句柄HCURSORHCURSOR光标句柄光标句柄HFONTHFONT字体句柄字体句柄HPENHPEN画笔句柄画笔句柄HBRUSHHBRUSH画刷句柄画刷句柄HDCHDC设备环境句柄设备环境句柄HICONHICON图标句柄图标句柄HMENUHMENU菜单句柄菜单句柄
9、HFILEHFILE文件句柄文件句柄 句柄句柄所标识所标识对象实例对象实例w窗口窗口w按钮按钮w图标图标w滚动条滚动条w输出设备输出设备w控件控件w文件文件w程序进程程序进程w如此等等如此等等.2 数据类型别名数据类型别名nWindows应用程序中的数据量非常大,为应用程序中的数据量非常大,为了提高应用程序的可读性,了提高应用程序的可读性,Windows给许给许多基本数据类型定义了多基本数据类型定义了别名别名,例如:,例如:typedef void*HANDLE;typedef unsigned long DWORD;typedef int BOOL;typedef unsigned char
10、 BYTE;typedef unsigned short WORD;2 数据类型别名(续)数据类型别名(续)nWindows应用程序还使用了一些结构类型应用程序还使用了一些结构类型的数据,例如:的数据,例如:typedefstructtagPOINTLONG x,y;POINT;/描述了一个点的位置。描述了一个点的位置。3 窗口及其功能窗口及其功能n窗口窗口Windows程序界面的主要组成程序界面的主要组成n典型窗口及其构成典型窗口及其构成控制菜单框控制菜单框窗口边界窗口边界工作区工作区下拉菜单下拉菜单水平滚动条水平滚动条垂直滚动条垂直滚动条最大化按钮最大化按钮最小化按钮最小化按钮标题栏标题栏
11、3 窗口及其功能(续)窗口及其功能(续)n窗口功能窗口功能1 系统对应用程序系统对应用程序管理的基本单位管理的基本单位2 应用程序与用户之间应用程序与用户之间交互的接口环境交互的接口环境3 Window应用程序应用程序基本的操作单元基本的操作单元nWindows应用程序编程应用程序编程创建一个或多个窗口创建一个或多个窗口nWindows应用程序运行应用程序运行窗口内部、窗口与窗口之间、窗口与系统之间窗口内部、窗口与窗口之间、窗口与系统之间进行数据处理与交换的过程进行数据处理与交换的过程4 消息的概念消息的概念n消息消息应用程序与系统及其它应用程序进应用程序与系统及其它应用程序进行信息交换的数据
12、结构行信息交换的数据结构n消息的三个组成部分:消息的三个组成部分:n消息号:由事先定义好的消息名标识消息号:由事先定义好的消息名标识n字参数字参数(wParam):提供消息的附加信息:提供消息的附加信息n长字参数长字参数(lParam):提供消息的附加信息:提供消息的附加信息n附加信息附加信息与具体消息号的值有关与具体消息号的值有关4 消息的概念(续)消息的概念(续)n消息的结构消息的结构typedef typedef structstruct tagMSGtagMSG HWND HWND hwndhwnd;/窗口句柄,为null,则检索队的所有消息 UINT messageUINT mess
13、age;/消息号,由Windows.h中的宏定义来标识 WPARAM WPARAM wParamwParam;/消息的附加信息 LPARAM LPARAM lParamlParam;/消息的附加信息 DWORD time;DWORD time;/指定消息送至队列的时间 POINT pt;POINT pt;/指定消息发送时屏幕光标的位置MSG;MSG;4 消息的概念(续)消息的概念(续)n系统能产生很多消息系统能产生很多消息n各种消息分类,分别以不同的前缀表示各种消息分类,分别以不同的前缀表示:WM WM 窗口消息窗口消息窗口消息窗口消息BM BM 按钮控制消息按钮控制消息按钮控制消息按钮控制消
14、息CB CB 组合框控制消息组合框控制消息组合框控制消息组合框控制消息DM DM 默认下压式按钮控制消息默认下压式按钮控制消息默认下压式按钮控制消息默认下压式按钮控制消息EM EM 编辑控制消息编辑控制消息编辑控制消息编辑控制消息LB LB 列表框控制消息列表框控制消息列表框控制消息列表框控制消息SBM SBM 滚动条控制消息滚动条控制消息滚动条控制消息滚动条控制消息4 消息的概念(续)消息的概念(续)n常见的常见的Windows消息有消息有5 事件及事件驱动事件及事件驱动n事件事件系统运行时发生的事情系统运行时发生的事情n事件通常以以下三种方式产生:事件通常以以下三种方式产生:l l通过输入
15、设备,如键盘和鼠标;通过输入设备,如键盘和鼠标;l l通通过过屏屏幕幕上上可可视视的的对对象象,如如菜菜单单、工工具具栏栏按按钮、滚动条和对话框上的控件;钮、滚动条和对话框上的控件;l l来来自自Windows内内部部,如如当当一一个个后后面面的的窗窗口口显示到前面来时。显示到前面来时。n事件的结果系统以消息的形式记录事件的结果系统以消息的形式记录n事件的结果即消息事件的结果即消息5 事件及事件驱动(续)事件及事件驱动(续)nWindows程序和系统是程序和系统是事件驱动事件驱动的,事件驱动的,事件驱动也称消息驱动,事件驱动模型如下:也称消息驱动,事件驱动模型如下:5 事件及事件驱动(续)事件
16、及事件驱动(续)n操作系统会用特定的机构管理消息操作系统会用特定的机构管理消息n消息队列消息队列作为结果的消息,系统以队列形式进行管理作为结果的消息,系统以队列形式进行管理n操作系统(软件程序)有监控机构、管理机操作系统(软件程序)有监控机构、管理机构、通讯机构等构、通讯机构等应用程序在这些机构的管理下运行应用程序在这些机构的管理下运行5 事件及事件驱动(续)事件及事件驱动(续)n支持队列特征的消息驱动模型支持队列特征的消息驱动模型6 API函数函数nWindows提供了大量预定义的用提供了大量预定义的用C语言编语言编写写的函数和数据结构集合,该集合叫的函数和数据结构集合,该集合叫API(Ap
17、plication Programming Interface)n早期的早期的Windows应用程序设计人员要使用应用程序设计人员要使用相应的相应的API函数来编写程序。函数来编写程序。n类型别名和类型别名和MSG等结构都包含在等结构都包含在API中中6 API函数(续)函数(续)n根据根据Windows API函数的功能,可以将其函数的功能,可以将其分为三类:分为三类:1)管管理理函函数数:实实现现窗窗口口和和其其它它对对象象的的创创建建、移动和修改等功能。移动和修改等功能。2)图图形形设设备备函函数数:实实现现与与设设备备无无关关的的图图形形操操作功能,可以实现图形绘制。作功能,可以实现图
18、形绘制。3)系系统统服服务务函函数数:实实现现与与操操作作系系统统有有关关的的多多种功能,如进程线程管理、任务调度等。种功能,如进程线程管理、任务调度等。1.3.Win32程序基本结构程序基本结构1 应用程序的组成应用程序的组成nWindows 程序分为程序分为“程序代码程序代码”和和“UI(User Interface)资源)资源”两大部份两大部份所谓所谓 UI 资源是指功能菜单、对话框外貌、程资源是指功能菜单、对话框外貌、程序图标、光标形状等序图标、光标形状等 n一个完整的一个完整的Windows应用程序通常包含如应用程序通常包含如下几种类型的文件:下几种类型的文件:nC/C+C/C+语言
19、源程序文件语言源程序文件(.c.c或或.cppcpp)n头文件头文件(.h.h)n资源描述文件资源描述文件(.rcrc)n模块定义文件模块定义文件(.def.def).1 应用程序的组成(续)应用程序的组成(续)n源程序组成源程序组成源程序主要由源程序主要由主函数主函数(入口函数)和(入口函数)和窗口函数窗口函数及其相关函数组成及其相关函数组成nWinMain和和WinProc是是Win32源程序主体源程序主体n前者是应用程序的入口,类似前者是应用程序的入口,类似main函数函数入口函数入口函数WinMain窗口函数窗口函数WndProcWndProcWindows应用程序应用程序构成基构成基
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Windows 编程 基础知识
限制150内