●二、Windows SDK Windows SDK(Windows Software Development Kit,Windows:软件开 发工具包)和Windows API紧密联系,它是<套帮助C语言程序员创建 Windows应用程序的工具,在Windows SDK中包括了以下几个组成部分: 大量的在线帮助,这些帮助描述了Windows:编程所可能用到的函数、 消息、结构、宏及其他资源。 . 各种编程工具,如对话框编辑器及图像编辑器等。 Windows库及头文件。 使用C语言编写的示例程序。 该工具包的最新版本就是我们正在使用的Win32SDK。在安装Visual C++的同时,Wi32SDK也安装到你的计算机上了。尽管MFC提供了对 Wi32API的比较完整的封装,但是,在某些情况下,我们更倾向于直接 调用Wi32API,因为这有时候可以获得更高的效率,并且有着更大的 自由度。而且,使用MFC编写的新风格的Windows应用程序的工作方式 基本上与使用$DK编写的程序一样,它们往往有着很多的共同之处,只 是使用MFC更加方便,因为它隐藏了大量的复杂性。 面向对象的编程方式是当前最流行的程序设计方法,但是,Wi32API 本身却是基于C语言的过程式编程的,SDK和MFC的最主要的不同之处 也就是C与C+十之间的差别,使用MFC进行Windows应用程序设计需要 面向对象的编程思想和方法
⚫ 二、Windows SDK ⚫ Windows SDK(Windows Software Development Kit, Windows软件开 发工具包)和Windows API紧密联系,它是一套帮助 C语言程序员创建 Windows应用程序的工具,在Windows SDK中包括了以下几个组成部分: ⚫ .大量的在线帮助,这些帮助描述了Windows编程所可能用到的函数、 消息、结构、宏及其他资源。 ⚫ .各种编程工具,如对话框编辑器及图像编辑器等。 ⚫ .Windows库及头文件。 ⚫ .使用C语言编写的示例程序。 ⚫ 该工具包的最新版本就是我们正在使用的 Win32 SDK。在安装 Visual C++的同时,Win32 SDK也安装到你的计算机上了。尽管MFC提供了对 Win32 API的比较完整的封装,但是,在某些情况下,我们更倾向于直接 调用 Win32 API,因为这有时候可以获得更高的效率,并且有着更大的 自由度。而且,使用MFC编写的新风格的Windows应用程序的工作方式 基本上与使用SDK编写的程序一样,它们往往有着很多的共同之处,只 是使用MFC更加方便,因为它隐藏了大量的复杂性。 ⚫ 面向对象的编程方式是当前最流行的程序设计方法,但是, Win32 API 本身却是基于C语言的过程式编程的,SDK和MFC的最主要的不同之处 也就是C与C+十之间的差别,使用MFC进行Windows应用程序设计需要 面向对象的编程思想和方法
●三、使用SDK编写Windows,应用程序 ● 传统的DOS程序以main(O函数作为进入程序的初始人口点,在Windows 应用程序中,main函数被WinMain函数取而代之,WinMain函数的原型如 下: int WINAPI WinMain(HINSTANCE hInstance,当前实例句柄: HINSTANCE hPrevInstance, ∥前一实例句柄 LPSTR IpCmdLine, ∥指向命令行参数的指针: int nCmdshow) ∥窗口的显示状态。 所谓的句柄是一个标识对象的变量,或者是一个对操作系统资源的间接 引i用。句柄是指向一个无类型对象”(Void*)的指针,也就是一个4 字节长的数据。其声明是这样的:typedef void*HANDLE Windows是一个多任务操作系统,它可以同时运行多个程序或一个程序 的多个副本。为了对同一程序的多个副本进行管理,Windows引入了实 例句柄。Windows为每个应用程序建立一张表,实例句柄就好像是这张 表的一个索引。Windows不仅使用句柄来管理实例,也用它来管理窗口、 位图、字体、元文件、图标等系统资源。 般情况下,我们应该在WinMain函数中完成下面的操作: (1)注册窗口类 (2)创建应用程序主窗口。 (3)进入应用程序消息循环
⚫ 三、使用 SDK编写 Windows应用程序 ⚫ 传统的DOS程序以main() 函数作为进入程序的初始人口点,在Windows 应用程序中,main函数被WinMain函数取而代之,WinMain函数的原型如 下: ⚫ int WINAPI WinMain(HINSTANCE hInstance, // 当前实例句柄; ⚫ HINSTANCE hPrevInstance, // 前一实例句柄; ⚫ LPSTR lpCmdLine, // 指向命令行参数的指针; ⚫ int nCmdshow) // 窗口的显示状态。 ⚫ 所谓的句柄是一个标识对象的变量,或者是一个对操作系统资源的间接 引用。句柄是指向一个“无类型对象”(Void*)的指针,也就是一个4 字节长的数据。其声明是这样的: typedef void *HANDLE ⚫ Windows是一个多任务操作系统,它可以同时运行多个程序或一个程序 的多个副本。为了对同一程序的多个副本进行管理,Windows引入了实 例句柄。Windows为每个应用程序建立一张表,实例句柄就好像是这张 表的一个索引。Windows不仅使用句柄来管理实例,也用它来管理窗口、 位图、字体、元文件、图标等系统资源。 ⚫ 一般情况下,我们应该在WinMain函数中完成下面的操作: ⚫ (l)注册窗口类。 ⚫ (2)创建应用程序主窗口。 ⚫ (3)进入应用程序消息循环
第五节Windows API 程序设计基础知识 要在Windows.上开发应用程序,就必须对Windows7程序设计有所 了解。 在编程时,变量、函数的命名是一个极其重要的问题。好的命 名方法使变量易于记忆且程序可读性大大提高。Microsoft采用匈 牙利命名法来命名Windows APIi函数和变量。匈牙利命名法是由 Microsoft的著名开发人员,Excel的主要设计者查尔斯西蒙尼在 他的博士论文中提出来的,由于西蒙尼的国籍是匈牙利,所以这 种命名法叫匈牙利命名法。 匈牙利命名法为C标识符的命名定义了一种非常标准化的方式, 这种命名方式是以下面两条规则为基础的: ·标识符的名字以一个或者多个小写字母开头,用这些字母来 指定数据类型。表1-2列出了常用的数据类型的标准前缀。 ·在标识符内,前缀以后就是一个或者多个第一个字母大写的 单词,这些单词清楚地指出了源代码内那个对象的用途。比如, m szStudentName表示一个学生名字的类成员变量,数据类型是 字符串型
第五节 Windows API 程序设计基础知识 ⚫ 要在Windows上开发应用程序,就必须对Windows程序设计有所 了解。 ⚫ 在编程时,变量、函数的命名是一个极其重要的问题。好的命 名方法使变量易于记忆且程序可读性大大提高。 Microsoft采用匈 牙利命名法来命名 Windows API函数和变量。匈牙利命名法是由 Microsoft的著名开发人员,Excel的主要设计者查尔斯·西蒙尼在 他的博士论文中提出来的,由于西蒙尼的国籍是匈牙利,所以这 种命名法叫匈牙利命名法。 ⚫ 匈牙利命名法为C标识符的命名定义了一种非常标准化的方式, 这种命名方式是以下面两条规则为基础的: ⚫ .标识符的名字以一个或者多个小写字母开头,用这些字母来 指定数据类型。表l-2列出了常用的数据类型的标准前缀。 ⚫ .在标识符内,前缀以后就是一个或者多个第一个字母大写的 单词,这些单词清楚地指出了源代码内那个对象的用途。比如, m_szStudentName表示一个学生名字的类成员变量,数据类型是 字符串型
表1.2 在Windows里定义数据类型的一些标准前缀 前缓 数据类型 c 字符(chau) 多 短整数(shon) 用于定义对象(一般为一个结构》尺寸的整数 整数(integer) 以‘0°结尾的字符申 b 字节 tn整数) 短整数(坐标x) y 短整数(坐标y) BOOL 字(WORD,无符号短整数) 1 长整数(ong) b HANDL龙(无符号it) 类成员变量 fn 函数(function) e 双字(DWORD,无符号长整数)
⚫
第六节Windows APli程序的开发步骤 开发基于Windows API的应用程序一般可以参考下面的步骤。启动Visual C++编译 器后,选择File菜单下的New菜单项,在列表框中选择Win32 Application项。然 后在Project name文本框中输入新建的项目名,再在Location文本框中输入新建项 目所在的路径。可用如下三种方式的任意一种创建Windows API)应用程序。 An empty project-一个空项目; A simpla Win32 application一个简单的Win32应用程序 A typical'"Hello World"application-一个典型的“Hello Word”应用程序。 如果选择A simple Win32 application项,Visual C++编译器将自动为用户生成项 目的框架文件。 对初学Windows API程序设计的程序员来说,“Hello World!”应用程序是 个很好的范例。当选择了A typical"Hello World!”application这项后,Visual C++编译器会自动创建一个完整的应用程序,这个程序将在弹出的窗口中显示 Hello World!。如果希望直接键人源程序,可以选择An empty projecti这一项。 项目框架建立起来后,需要向其中加入相关的文件,这些文件可能是已经存 在的,也可能是需要重新编辑建立的。 要向项目中加入文件,可以单击Visual C++编译器中Project菜单下的Add1o Project级联菜单下的Files菜单项,选择需要插入到项目中的文件,然后单击OK按 钮,相应的文件就会被插入到项目中。单击Visual C+编译器中File菜单下的 Nw菜单项,列表框中列出了所有可以新建的文件类型,这些文件中用得最为频 繁的是C++Source File。首先选中列表框中的C++Source File项,然后在File文本 框中键入文件名,再单击OK按钮。这样就可以在Visual C++编译器中键人相应的 源文件了。其他类型的文件可以参照C++Source File的建立步骤
第六节 Windows API程序的开发步骤 ⚫ 开发基于 Windows API的应用程序一般可以参考下面的步骤。启动Visual C++编译 器后,选择 File菜单下的 New菜单项,在列表框中选择 Win32 Application项。然 后在 Project name文本框中输入新建的项目名,再在Location文本框中输入新建项 目所在的路径。 可用如下三种方式的任意一种创建 Windows API应用程序。 ⚫ . An empty project一个空项目; ⚫ . A simpla Win32 application 一个简单的Win32应用程序 ⚫ . A typical" Hello World”application一个典型的“Hello Word”应用程序。 ⚫ 如果选择A simple Win32 application项, Visual C++ 编译器将自动为用户生成项 目的框架文件。 ⚫ 对初学 Windows API程序设计的程序员来说, “Hello World!”应用程序是一 个很好的范例。当选择了 A typical "Hello World!”application这一项后,Visual C++编译器会自动创建一个完整的应用程序,这个程序将在弹出的窗口中显示 Hello World!。 如果希望直接键人源程序,可以选择 An empty project这一项。 ⚫ 项目框架建立起来后,需要向其中加入相关的文件,这些文件可能是已经存 在的,也可能是需要重新编辑建立的。 ⚫ 要向项目中加入文件,可以单击Visual C++编译器中Project菜单下的Add To Project级联菜单下的Files菜单项, 选择需要插入到项目中的文件,然后单击OK按 钮,相应的文件就会被插入到项目中。 单击 Visual C++编译器中File菜单下的 New菜单项,列表框中列出了所有可以新建的文件类型,这些文件中用得最为频 繁的是C++ Source File。首先选中列表框中的C++ Source File项,然后在File文本 框中键入文件名,再单击OK按钮。这样就可以在Visual C++编译器中键人相应的 源文件了。其他类型的文件可以参照 C++ Source File的建立步骤