Windows程序设计.doc

上传人:创****公 文档编号:3708157 上传时间:2019-07-07 格式:DOC 页数:52 大小:1.52MB
下载 相关 举报
Windows程序设计.doc_第1页
第1页 / 共52页
Windows程序设计.doc_第2页
第2页 / 共52页
Windows程序设计.doc_第3页
第3页 / 共52页
Windows程序设计.doc_第4页
第4页 / 共52页
Windows程序设计.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、Windows 编程技术课程:Windows 编程技术 性质:限选 学时:(2+2)*18 = 36 + 36 学分:2+1教材:林俊杰. 新一代 Visual C+ 2005 程序设计. 清华大学出版社,2006.11(16 开/479 页/49 元)参考书:Ivor Horton(李颂华、康会光译). Visual C+ 2005 入门经典 . 清华大学出版社,2007.1.(16 开/1046 页/118 元)罗斌. Visual C+ 2005 编程实例精粹. 中国水利水电出版社,2007.1(16 开/648 页/68元)H.M.Deitel 等. Visual C+.NET 大学教

2、程. 清华大学出版社,2004.7.(16 开/970 页/99元)George Shepherd & David Kruglinski. Microsoft Visual C+ .NET 技术内幕. 清华大学出版社,2004.7.(16 开/920 页 /106 元/1CD)姚领田. 精通 MFC 程序设计. 人民邮电出版社,2006.7.( 16 开/715 页/78 元/1CD)Eugene Olafsen 等. MFC Visual C+ 6 编程技术内幕. 机械工业出版社, 2000.2.(16 开/790 页/89 元/1CD)任哲等. MFC Windows 应用程序设计. 清华

3、大学出版社,2004.7.(16 开/303 页/27 元)课件:在中大计算机系主页(http:/ 李才伟/Windows 编程技术”中考核:考勤问答 10% + 平时作业 15% + 大作业 15% + 期末考试 60%教学目的与课程要求:了解 Windows 编程的特点( GUI/消息驱动/OPP)与 Visual Studio 开发平台,掌握Visual C+的 MFC、标准 C+和.NET 编程。内容包括用户界面、文档视图、图形、多媒体、数据库、网络等基本程序设计,及上下文相关帮助、动态链接库、ActiveX 控件、多线程、STL、COM、.NET/CLR 、窗体等高级程序设计。在教学

4、过程中强调基本性质的了解、具体方法的掌握和实际动手能力的培养。采用课堂讲解与现场演示相结合、平时练习和综合作业相结合方式,使学生掌握Windows 编程的基本内容和主要方法。特别强调学生自己动手上机实习,要求编程实现课堂示例和课后练习,并按照各部分内容设计若干案例供学生进行实际编程练习,最后每个学生自选一个项目作为综合性编程作业。课程内容: 绪论:操作系统与 GUI、Windows 编程的特点与工具、Visual Studio 开发平台与 MFC 界面:菜单、工具栏和状态栏,对话框和控件,鼠标/键盘与消息 图形:绘图、位图、文本、打印 文档:文档视图体系、文件读写与序列化、多视图、滚动与切分窗

5、口 GDI+:GDI+的特点和优势、绘图与文字、路径与区域、变换与图像、图元文件 标准 C+:宽字符串及字符串类、命名空间的使用、泛型编程与 STL、容器与排序 .NET:NET 框架与 CLR、MC+与 C+/CLI 组件:DLL、COM、ActiveX 控件与 CLR 组件编程 多媒体:播放波形音频文件、MCI 与 MMAPI 编程、OpenGL 与 DirectX 编程 数据库:MFC 的数据库接口与类、ODBC 与 DAO 编程、ADO.NET 编程简介 网络:WinSock 与 WinInet 编程、.NET 环境下的基本网络编程 高级:上下文相关帮助、多线程、系统编程、窗体编程第

6、1 章 绪论本章内容:1.1 OS 与 GUI1.2 Windows 编程的特点1.3 Windows 编程工具1.4 C+与 Visual C+1.5 开发环境与 Visual Studio 平台1.6 API 与 MFC 概述1.7 VC 编程环境与 MFC 应用程序开发1.1 OS 与 GUIWindows(视窗)是 Microsoft 公司为 PC 机开发的具有图形用户界面的多任务操作系统。1. 操作系统的发展无 OS(控制面板) 批处理(电传打字机) 多任务(控制台) 分布式( 网络)无界面 字符界面 图形界面 多媒体界面 普适计算DOS/Unix MacOS /X-Window/W

7、indows2. 图形用户界面1)GUI 图形用户界面(GUI=Graphical User Interface):计算机的一种人机接口,由图形显示设备(屏幕)和指示跟踪设备(鼠标、跟踪球、光笔/手写笔、触摸屏)组成,用户可通过指示设备来操作图形设备上的界面元素(窗口、菜单、对话框、图标)以完成各种工作。与 DOS 等基于命令行的字符界面的 OS 相比,GUI 形象直观、使用方便、人性化,不需记忆各种命令和参数,各种应用软件之基本功能的操作一致或相似。有大量 API 供程序员调用,图形界面的编程相对 DOS 要简单。2)简史 1950 年 MIT 的林肯实验室推出 CRT 显示器 1963 年

8、 Douglas Engelbart 发明鼠标,1968 年他又推出视窗与人机界面 1972 年 Alan Kay 设计出面向对象的 Smalltalk 语言,首创下拉式菜单,提出 GUI 概念 1973 年施乐 Xerox 公司的 PARC 研究中心推出具有图形用户界面的原型机 Alto 1984 年 Apple 公司推出 Macintosh(胶布雨衣)计算机,在微机中引入图形用户界面 1985 年 MIT 设计出 Unix 的图形用户界面 X-Window 1990 年 Microsoft 推出 PC 机的具有图形用户界面的 OS:Windows 3.0 获得成功3. Windows 的主

9、要版本 1985 年:1.0(GUI、16 位、差/ 慢) 1990 年:3.0(成功) 1992 年:3.1(多媒体) 1993 年:NT(32 位、微内核) 1995 年:95(32 位) 1999 年:2000(NT+98/Me,流媒体) 2001 年:XP(支持 64 位,功能强大) 2003 年:Server 2003(支持 64 位,服务器) 2006 年:Vista(3D 界面 /人性化、支持 64 位)1.2 Windows 编程的特点Windows 的主要特点有:面向对象、消息 /事件驱动、多任务、图形设备接口 GDI 与设备无关。与这些相对应,Windows 编程有如下特点

10、:1面向对象的编程思想在 Windows 中,窗口、菜单、事件皆是对象,而对话框与各种控件只是一些特殊的窗口,所以对界面元素的操作和消息/事件的处理都涉及到对象。这些对象的属性和操作,由API 的数据结构和函数提供,或由 MFC 的类提供。因此, Windows 编程一般都采用面向对象的程序设计 (OOP = Object Oriented Programming)语言与工具。2消息/事件驱动的程序结构在字符界面型 OS(如 DOS)中执行应用程序时,程序必须取得 CPU 的控制权,整个运行过程都由程序本身来控制,称之为过程驱动的程序结构。而对 GUI 型 OS(如Windows) ,情形则完

11、全不同:在应用程序的运行过程中,大部分时间是由 OS 掌握控制权,只是在发生用户或系统事件(如移动鼠标、按下键盘、选择菜单或时钟、通信)后,OS 才调用程序中的对应事件处理模块,所以称之为事件驱动的程序结构。在 GUI 型 OS 中,事件发生后会产生对应的消息,消息提供了应用程序与 OS 之间、应用程序与应用程序之间的通信手段;多数应用程序的大部分代码都是用来响应和处理这些消息,所以也称之为消息驱动的程序结构。Windows 维护着一个系统消息队列, Windows 也为每个应用程序创建一个应用消息队列,事件所产生的消息,首先进入系统消息队列,然后再被传送到对应的应用消息队列,最后才被发送到消

12、息所对应的窗口。Windows 消息处理3资源共享与数据交换操作系统负责计算机的资源管理,资源包括:CPU、内存、I/O 设备。标准的 MS-DOS程序在运行时,可独占计算机的所有资源。但由于 Windows 是一种抢先式多任务操作系统,用户操作系统事件系统消息队列应用消息队列应用消息队列应用程序消息处理函数窗口函数 1窗口函数 n应用程序消息处理函数窗口函数 1窗口函数 n所以 Windows 应用程序必须和正在运行的其他程序共享这些资源。因此在进行 Windows程序设计时,必须时刻记住资源共享这一多任务 OS 的特点,以避免耗尽资源而造成系统死机。多任务操作系统 Windows 提供了多

13、种手段在应用程序与系统之间、应用程序与应用程序之间进行数据交换与共享,如剪接板(Clipboard)、动态数据交换(DDE = Dynamic Data Exchange)、动态连接库(DLL = Dynamic-Link Library)、对象链接与嵌入(OLE = Object Linking and Embedding)、组件对象模型(COM = Component Object Model)、ActiveX、.NET/CLR。这些内容将在本课程的高级 Windows 编程部分学习。4与设备无关 GDI 编程Windows 为应用程序提供了丰富的与设备无关应用程序接口,免去了为不同的 I

14、/O 设备编写软件的不同版本之烦恼。如利用与设备无关的图像设备接口(GDI = Graphics Device Interface),应用程序可使用同一函数,可在不同的打印机和显示器上输出同一个图形。5.NET微软的.NET 由包含运行环境和类库的.NET 框架和对应的应用程序开发平台 Visual Studio 这两部分组成。 .NET 框架.NET 框架(.NET Framework)是微软公司为了与 Sun 公司的 Java/J2EE 竞争,于 2000年 6 月提出来的一种新的跨语言计算平台,适用于 Web 服务(Web services)和因特网分布式应用,是生成、部署和运行 XML

15、 Web 服务和应用程序的一种多语言环境。.NET 框架由如下三个主要部分组成: 公共语言运行库(CLR, Common Language Runtime) 该运行库在组件的运行时和开发时的操作中都起着很大作用: 在组件运行时,运行库除了负责满足此组件在其他组件上可能具有的依赖项外,还负责管理内存分配、启动和停止线程和进程,以及强制执行安全策略; 在开发时,运行库的作用稍有变化;由于做了大量的自动处理工作(如内存管理) ,运行库使开发人员的操作非常简单,尤其是与今天的 COM 相比。特别是反射等功能显著减少了开发人员为将业务逻辑转变为可重用组件而必须编写的代码量; 统一编程类 该框架为开发人员

16、定义并提供了统一的、面向对象的、分层的和可扩展的类库集.NET 框架类库(FCL, Framework Class Library)或.NET 基类库(BCL, Base Class Library) 。通过创建跨所有编程语言的公共 API 集,公共语言运行库使得跨语言继承、错误处理和调试成为可能。从 JScript、Visual Basic 到 C+、J# 、 C# 的所有编程语言(通过托管扩展)具有对框架的相似访问,开发人员可以自由选择它们要使用的语言; ASP.NET ASP.NET 建立在 .NET Framework 的编程类之上,它提供了一个 Web 应用程序模型,并且包含使生成

17、ASP Web 应用程序变得简单的控件集和结构。.NET Framework 环境其中的 FCL 是用微软公司自己提出的 CLI(Common Language Infrastructure 公共语言基础设施)定义的,CLR 是 CLI 在 Windows 平台上的一种实现。CLI 包含 CTS(Common Type System,公共类型系统)和 CIL(Common Intermediate Language,公共中间语言)两个主要组成部分。其中的 CLI 已经成为 ECMA(European Computer Manufacturers Association,欧洲计算机厂商协会)标准

18、(ECMA-335 , 2005 年 6 月推出第 3 版)和ISO(International Organization for Standardization,国际标准化组织)标准(ISO/IEC 23271:2006,2006 年 9 月 27 日推出第 2 版,对应于 ECMA-335 的第 3 版) 。2002 年 2 月微软推出了.NET 框架的 1.0 版,2003 年 5 月推出了 1.1 版,2005 年 10 月推出了 2.0 版,2006 年 11 月 6 日又推出了 3.0 版。 Visual Studio .NET 开发平台Visual Studio .NET 是基于

19、.NET 框架软件的开发平台,是.NET 的主要组成部分。在VS.NET 中集成了 Visual Basic、C#、J# 和 Visual C+等编程语言,也支持脚本语言JScript。其中,C# 是微软公司于 2000 年 7 月自己创造的一种类似于 Java 的编程语言,Visual C# 随 VS.NET 1.0 一起正式推出;Visual J# 是随 VS.NET 2003 推出的一种 Java 的变种,是原来 Visual J+的发展;JScript 则是 JavaScript 的微软变种。各种.NET 编程语言中,C# 与.NET 结合得最紧密,是.NET 的首选语言,实际上 C#

20、 本身就是专门为.NET 设计的;微软一贯重视(比尔盖茨的看家本领 Basic 的发展)Visual Basic,在 .NET 中也不例外,所以在 MSDN 帮助文档中,往往只有 C# 和 VB 的例子,而没有 VC 的。2002 年 2 月 13 日微软公司推出了 Visual Studio .NET(1.0) ,2003 年 5 月 20 日推出了Visual Studio .NET 2003,2005 年 11 月 7 日又推出了 Visual Studio 2005。微软公司之所以推出.NET 框架,主要是为了与 Sun 公司的 Java 平台竞争。虽然微软公司号称.NET 框架是跨平

21、台和跨语言的,但是目前主要是微软公司自己在 Windows 平台的实现。也有人把.NET 移植到 Linux、Solaris 、Mac OS X 和 Unix 上,但至今还没有被广泛认同和应用(参见网站 http:/www.mono-) 。由于 Sun 公司收回了微软公司对 Java 语言的使用权,所以.NET 框架的多语言环境中也不包括 Java 这一世界通用的网络编程首选语言,而是以微软从 C+和 Java 借鉴过来的C# 为主,同时也强调微软自己的 VB、J# 和 JScript,虽然也支持通用的 C+,但必须进行微软的托管扩展(Managed C+或 C+/CLI) 。总之,到目前为止

22、,.NET 框架还是一种主要局限于 Windows 操作系统,且只能使用微软公司自己的几种编程语言或扩展 C+的一种分布式计算平台。 .NET Framework 类库.NET Framework 类库是一个由 Microsoft .NET Framework SDK 中包含的类、接口和值类型组成的库。该库提供对系统功能的访问,是建立 .NET Framework 应用程序、组件和控件的基础。该类库采用命名空间来组织和使用(源自 ISO C+,似 Java 中的包) ,下面是.NET Framework (2.0 版)类库提供的命名空间(24 个 Microsoft 型、155 个 Syste

23、m 型,共 179 个)中的一部分: Microsoft.Aspnet.Snapin包含使 Microsoft Internet Information Server 管理控制台能够配置 ASP.NET 应用程序的类。 Microsoft.Build.BuildEngine包含表示 MSBuild 引擎的类。 Microsoft.Build.Framework包含组成 MSBuild 的任务、记录器和事件的类。 Microsoft.Build.Tasks包含 MSBuild 附带的所有任务的实现。 Microsoft.Build.Tasks.Deployment.Bootstrapper包含由

24、 MSBuild 在内部使用的类。 Microsoft.Build.Tasks.Deployment.ManifestUtilities包含由 MSBuild 在内部使用的类。 Microsoft.Build.Utilities提供可用于创建自己的 MSBuild 记录器和任务的帮助器类。 Microsoft.Csharp包含支持用 C# 语言进行编译和代码生成的类。 Microsoft.JScript包含支持用 JScript 语言进行编译和代码生成的类。 Microsoft.SqlServer.Server包含专用于 Microsoft .NET Framework 公共语言运行库 (CL

25、R) 组件与 Microsoft SQL Server 和 SQL Server 数据库引擎进程执行环境的集成的类。 Microsoft.VisualBasic包含支持用 Visual Basic 语言进行编译和代码生成的类。 Microsoft.VisualBasic.ApplicationServices包含支持 Visual Basic 应用程序模型并提供对应用程序信息的访问的类型。 Microsoft.VisualBasic.CompilerServices包含支持 Visual Basic 编译器的仅在内部使用的类型。 Microsoft.VisualBasic.Devices包含支

26、持与 Visual Basic 中的设备相关的 My 对象的类型。 Microsoft.VisualBasic.FileIO包含支持 Visual Basic 中的 My 文件系统对象的类型。 Microsoft.VisualBasic.Logging包含相关类型,这些类型支持 Visual Basic 中的 My 日志记录对象,并提供一个将日志输出定向到文件的简单日志侦听器。 Microsoft.VisualBasic.MyServices包含支持 Visual Basic 中的 My 的类型。 Microsoft.VisualBasic.MyServices.Internal包含仅在内部使

27、用的类型,这些类型支持 Visual Basic 中的 My。 Microsoft.Vsa包含相关接口,这些接口使您可以将 .NET Framework 脚本引擎的脚本集成到应用程序中以及在运行时编译和执行代码。 Microsoft.Win32提供两种类型的类:处理由操作系统引发的事件的类和对系统注册表进行操作的类。 Microsoft.Win32.SafeHandles包含安全句柄类的抽象派生类,安全句柄类提供支持文件和操作系统句柄的常见功能。 Microsoft.WindowsCE.Forms包含用于使用 .NET Compact Framework 开发 Pocket PC 和 Smar

28、tphone Windows 窗体应用程序的类。 Microsoft.WindowsMobile.DirectX包含用于开发带有 .NET Compact Framework 的设备上使用的 DirectX 应用程序的类。需要 Windows Mobile 的将来版本才能运行这些应用程序。 Microsoft.WindowsMobile.DirectX.Direct3D包含用于开发带有 .NET Compact Framework 的设备上使用的 Direct3D 应用程序的类。需要 Windows Mobile 的将来版本才能运行这些应用程序。 System包含用于定义常用值和引用数据类型、

29、事件和事件处理程序、接口、属性和处理异常的基础类和基类。其他类提供支持下列操作的服务:数据类型转换,方法参数操作,数学计算,远程和本地程序调用,应用程序环境管理以及对托管和非托管应用程序的监管。 System.Drawing提供对 GDI+ 基本图形功能的访问。更为高级的功能在 System.Drawing.Drawing2D、System.Drawing.Imaging 和 System.Drawing.Text 命名空间中提供。 System.Drawing.Design包含扩展设计时用户界面 (UI) 逻辑和绘制的类。可以进一步扩展此设计时功能来创建以下对象:自定义工具箱项,类型特定的值

30、编辑器或类型转换器,其中类型特定的值编辑器用于编辑和以图形方式表示所支持的类型的值;类型转换器用于在特定的类型之间转换值。此命名空间提供了开发设计时用户界面扩展的基本框架。 System.Drawing.Drawing2D提供高级的二维和向量图形功能。此命名空间包括渐变画笔、Matrix 类(用于定义几何转换)和 GraphicsPath 类。 System.Drawing.Imaging提供高级的 GDI+ 图像处理功能。基本图形功能由 System.Drawing 命名空间提供。 System.Drawing.Printing提供与打印相关的服务。通常情况下,您可以创建 PrintDocu

31、ment 类的实例,设置描述打印内容的属性,然后调用 Print 方法实际打印文档。 System.Drawing.Text提供高级的 GDI+ 版式功能。基本图形功能由 System.Drawing 命名空间提供。此命名空间中的类使用户可以创建和使用字体集合。 System.Windows.Forms包含用于创建基于 Windows 的应用程序的类,这些应用程序可以充分利用 Microsoft Windows 操作系统中的丰富用户界面功能。 System.Windows.Forms.ComponentModel.Com2Interop包含 Visual Studio 用于在设计模式中显示属性

32、页的帮助器类。 System.Windows.Forms.Design包含支持 Windows 窗体组件的设计时配置和行为的类。这些类包括:提供 Windows 窗体组件(即一组设计时服务)支持的设计器类、用于配置特定属性类型的 UITypeEditor 类,以及用于导入 ActiveX 控件的类。 System.Windows.Forms.Design.Behavior包含用于为组件创建设计时的自定义用户界面行为的类。 System.Windows.Forms.Layout包含支持设计时和运行时布局行为的类。 System.Windows.Forms.Printing提供用于创建具有页眉、页

33、脚、连续线条和表格布局的简单报告的类。打印是使用 SimplePrintDocument 类执行的,并使得写入打印机像写入控制台一样容易。 System.Windows.Forms.PropertyGridInternal提供对 PropertyGrid 控件的内部支持。此命名空间中的类支持 .NET Framework 基础结构,但不应在代码中直接使用 我们的课程主要讲 MFC 编程,但也会讲一些与.NET 有关的 GDI+和 Form(窗体)编程,至于 C+/CLI 的 CLR 编程只会做一点简单的介绍。非托管应用程序 托管应用程序 Java 应用程序Visual C+(MC+或 C+/C

34、LI)Visual C#、Visual Basic .NET、Visual J#、 JScript、Java (SE/EE).NET 类库( FCL) JFC/EJBDelphi、C+Bulder、 ASM、 C+类库(MFC/ATL) .NET 运行环境(CLR) JVM应用程序接口(Win32/64 API )操作系统(Windows )计算机硬件(PC 机)Windows 编程环境(其中,ATL(Active Template Library 活动模板库)是一套基于模板的 C+ 类,可用来创建小型、快速的 COM(Component Object Model 组件对象模型)对象)可见 VC 是 Windows 各种编程工具中唯一的一种可以同时 混合编写非托管的(API和 MFC/ATL)程序以及托管的(.NET)程序的工具,而其他 VS05 中的语言工具(如 C#和 VB 等)则只能编写.NET 运行环境中的托管程序。

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

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。