Windows编程基础知识

上传人:飞*** 文档编号:46217520 上传时间:2018-06-24 格式:PPT 页数:46 大小:252.50KB
返回 下载 相关 举报
Windows编程基础知识_第1页
第1页 / 共46页
Windows编程基础知识_第2页
第2页 / 共46页
Windows编程基础知识_第3页
第3页 / 共46页
Windows编程基础知识_第4页
第4页 / 共46页
Windows编程基础知识_第5页
第5页 / 共46页
点击查看更多>>
资源描述

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

1、Windows编程 基础知识内容提要n n1 Windows1 Windows编程概述编程概述n n2 2 基本概念基本概念n n3 Windows3 Windows程序基本结构程序基本结构n n4 4 程序示例程序示例1.1.1.1.WindowsWindows编程概述编程概述1 Windows编程nWindws编程 在微软的Windows操作系统下编程n使用的工具微软公司和其他公司(Boland等)在该操作 系统下提供了了很多可视化的开发系统平台,如 VC+、VB 、 BC、Delphi等。n我们使用VC+1 Windows编程(续)可视化开发系统 (资源和工具的集成)源程序 编辑器 编译

2、器调试工具 语法检查 程序修改 运行监视应用程序 Help和Setup 开发工具函数库和 系统函数 开发工具资源管理器 各种窗口和 控件的编辑器例程库 及Help其他 功能2 Windows程序特点nWindows程序特点1图形用户界面(窗口)统一、友好2独立于设备的图形操作(GUI)3支持多任务机制(多线程)4事件驱动的程序设计(消息队列机制)5程序和资源分开、资源共享6支持应用程序间的数据交换(剪贴板等)2 Windows程序特点(续)n一个简单的Windows程序#include #include intint CALLBACK CALLBACK WinMainWinMain( HINS

3、TANCE ( HINSTANCE hInstancehInstance, , HINSTANCE HINSTANCE hPrevInstancehPrevInstance, ,LPSTR LPSTR lpCmdLinelpCmdLine, , intint nCmdShownCmdShow) ) / / 产生一个问候小窗口产生一个问候小窗口MessageBoxMessageBox ( NULL, “Hello World!”, ( NULL, “Hello World!”,“Say Hello”, MB_OK ); “Say Hello”, MB_OK );returnreturn 1; 1

4、; 3 Windows程序设计方法n传统式写法使用C语言语法规范的API函数(Application Programming Interface)n交互式写法 使用C+语法规范的MFC类库 (Microsoft Foundation Class) n其他写法 使用模板技术等的ATL模板库 (ActiveX Template Library) 和组件技术等1.2.1.2.基本概念基本概念1 Windows程序及对象nWindows应用程序使用的界面是由各种 图形元素组成的图形界面n各个图形元素具有不同的功能n应用程序的用户主要是通过键盘和鼠标 对应用程序界面上的图形元素进行操作 来与Window

5、s应用程序进行交互的1 Windows程序及对象(续)n在Windows程序(系统)中,存在着许多 与DOS应用程序不同的复杂对象n对象和句柄 Windows的程序中,对象是具有规范形态和 操作模式的部件,例如窗口、按钮、滚动条等;Windows把为这种复杂对象所定义的标识叫 做句柄,应用程序过句柄访问相应的对象信息。n句柄实际上在C/C+中实现为指针(或认 为其一个长度为4字节长整数值)1 Windows程序及对象(续)常用句柄类型 HWND窗口句柄 HINSTANCE 当前实例句柄 HCURSOR光标句柄 HFONT字体句柄 HPEN画笔句柄 HBRUSH画刷句柄 HDC设备环境句柄 HI

6、CON图标句柄 HMENU菜单句柄 HFILE文件句柄 句柄句柄所标识所标识对象实例对象实例 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 BYTE; typedef unsigned short WORD;2 数据类型别名(续)nWi

7、ndows应用程序还使用了一些结构类型 的数据,例如: typedefstructtagPOINT LONG x, y; POINT; / 描述了一个点的位置。3 窗口及其功能n窗口Windows程序界面的主要组成n典型窗口及其构成控制菜单框窗口边界工作区下拉菜单水平滚动条垂直滚动条最大化按钮最小化按钮标题栏3 窗口及其功能(续)n窗口功能 1 系统对应用程序管理的基本单位 2 应用程序与用户之间交互的接口环境 3 Window应用程序基本的操作单元nWindows应用程序编程 创建一个或多个窗口nWindows应用程序运行 窗口内部、窗口与窗口之间、窗口与系统之间 进行数据处理与交换的过程4

8、 消息的概念n消息应用程序与系统及其它应用程序进 行信息交换的数据结构n消息的三个组成部分:n消息号:由事先定义好的消息名标识n字参数(wParam) :提供消息的附加信息n长字参数(lParam) :提供消息的附加信息n附加信息与具体消息号的值有关4 消息的概念(续)n消息的结构typedef struct tagMSG HWND hwnd; /窗口句柄,为null,则检索队的所有消息UINT message;/消息号,由Windows.h中的宏定义来标识WPARAM wParam; /消息的附加信息LPARAM lParam; /消息的附加信息DWORD time; /指定消息送至队列的时

9、间POINT pt; /指定消息发送时屏幕光标的位置 MSG;4 消息的概念(续)n系统能产生很多消息n各种消息分类,分别以不同的前缀表示: WM WM 窗口消息窗口消息 BM BM 按钮控制消息按钮控制消息 CB CB 组合框控制消息组合框控制消息 DM DM 默认下压式按钮控制消息默认下压式按钮控制消息 EM EM 编辑控制消息编辑控制消息 LB LB 列表框控制消息列表框控制消息 SBM SBM 滚动条控制消息滚动条控制消息4 消息的概念(续)n常见的Windows消息有5 事件及事件驱动n事件系统运行时发生的事情n事件通常以以下三种方式产生: l通过输入设备,如键盘和鼠标; l通过屏幕

10、上可视的对象,如菜单、工具栏按 钮、滚动条和对话框上的控件; l来自Windows内部,如当一个后面的窗口 显示到前面来时。n事件的结果系统以消息的形式记录n事件的结果即消息5 事件及事件驱动(续)nWindows程序和系统是事件驱动的,事件驱动 也称消息驱动,事件驱动模型如下:5 事件及事件驱动(续)n操作系统会用特定的机构管理消息n消息队列 作为结果的消息,系统以队列形式进行管理n操作系统(软件程序)有监控机构、管理机 构、通讯机构等 应用程序在这些机构的管理下运行5 事件及事件驱动(续)n支持队列特征的消息驱动模型6 API函数nWindows提供了大量预定义的用C语言编 写的函数和数据

11、结构集合,该集合叫API( Application Programming Interface)n早期的Windows应用程序设计人员要使用 相应的API函数来编写程序。n类型别名和MSG等结构都包含在API中6 API函数(续)n根据Windows API函数的功能,可以将其 分为三类: 1)管理函数:实现窗口和其它对象的创建、 移动和修改等功能。 2)图形设备函数:实现与设备无关的图形操 作功能,可以实现图形绘制。 3)系统服务函数:实现与操作系统有关的多 种功能,如进程线程管理、任务调度等。1.3.1.3.Win32Win32程序基本结构程序基本结构1 应用程序的组成nWindows 程

12、序分为“程序代码”和“UI( User Interface)资源”两大部份所谓 UI 资源是指功能菜单、对话框外貌、程 序图标、光标形状等 n一个完整的Windows应用程序通常包含如 下几种类型的文件:nC/C+语言源程序文件(.c或.cpp)n头文件(.h)n资源描述文件(.rc)n模块定义文件(.def).1 应用程序的组成(续)n源程序组成源程序主要由主函数(入口函数)和窗口函数 及其相关函数组成nWinMain和WinProc是Win32源程序主体n前者是应用程序的入口,类似main函数入口函数WinMain窗口函数WndProcWindows 应用程序构成基 本框架包含各种 数据类

13、型 数据结构 与函数等2 WinMain函数n三个基本的组成部分:n函数说明n初始化n消息循环n功能n注册窗口类,建立窗口及初始化n进入消息循环,据消息调用相应的处理过程n当消息循环检索到WM_QUIT时终止程序运行2 WinMain函数(续)n函数(原型)说明注意!Windows操作系统是多任务管理的,同一应用程 序可能同时存在多个窗口,Windows系统对每个窗口的 执行称为一个实例,并用一个实例句柄来唯一标识它。int WINAPI WinMain ( HINSTANCE hThisInst,应用当前实例句柄HINSTANCe hPrevInst,应用其他实例句柄LPSTR lpszCm

14、dLine, 指向命令行参数的指针Int nCmdShow初始窗口显示方式的整数值标识 )2 WinMain函数(续)n初始化 初始化包括窗口类的定义、注册窗口类、 创建窗口和显示窗口四部分。需要注意的是, 在显示窗口ShowWindow函数后,需调用 UpdateWindow函数更新并绘制用户区,并 发出WM_PAINT消息。2 WinMain函数(续)n消息循环 应用程序通常有一段代码称为消息循环,又 称为消息泵,它是程序的动力结构,形式如下MSG msg; /从消息队列中提取消息 while (GetMessage( /消息解释,如字符键的处理 DispatchMessage( /将消息

15、传送到指定窗口函数 / 以上出现的函数都是 Windows API 函数2 WinMain函数(续)n消息循环中:函数GetMessage形式为:GetMessage(lpMSG, /指向MSG结构的指针hwnd,nMsgFilteMin, /用于消息过滤的最小消息号值nMsgFilterMax /用于消息过滤的最大消息号值)nGetMessage从消息队列中读取消息,并将消 息放在MSG结构中,返回零值,即检索到 WM_QUIT消息,程序结束循环并退出2 WinMain函数(续)nDispatchMessage函数 该函数负责将消息分发给窗口函数(可以理 解为其用指针间接调用了窗口过程函数)

16、n在窗口产生过程中,要使用函数指针为窗 口联系一个函数(通常为WndProc)nWndProc窗口函数是程序和用户交互的 主要处理部分!3 窗口函数WinProcnWndProc函数由一个或多个switch语句组 成。每一条case语句对应一种消息,当应 用程序接收到一个消息时,相应的case语 句被激活并执行相应的响应程序模块。WndProc 包含了对各种可能接收到的消息的处理过程定义了应用程序对接收到的不同消息的响应窗口函数的一般形式如下: LRESULT CALLBACK WndProc( HWND hwnd,UINT messgae,WPARAM wParam,LPARAM lParam ) switch(messa

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 文学/艺术/历史 > 综合/其它

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