visualc轻松入门第10章windows应用程序介绍

上传人:san****019 文档编号:69672330 上传时间:2019-01-14 格式:PPT 页数:25 大小:709.50KB
返回 下载 相关 举报
visualc轻松入门第10章windows应用程序介绍_第1页
第1页 / 共25页
visualc轻松入门第10章windows应用程序介绍_第2页
第2页 / 共25页
visualc轻松入门第10章windows应用程序介绍_第3页
第3页 / 共25页
visualc轻松入门第10章windows应用程序介绍_第4页
第4页 / 共25页
visualc轻松入门第10章windows应用程序介绍_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《visualc轻松入门第10章windows应用程序介绍》由会员分享,可在线阅读,更多相关《visualc轻松入门第10章windows应用程序介绍(25页珍藏版)》请在金锄头文库上搜索。

1、第10章 Windows应用程序介绍,Windows是Microsoft公司的主打软件产品,属于操作系统的一种,而Visual C+6.0也是Microsoft公司的软件产品,是当今主流集成开发环境之一。由于都出自同一个公司,因此Visual C+6.0对基于Windows的应用软件具有很高的开发兼容性。特别是MFC类库,它几乎就是为Windows应用软件量身定做的一套类库框架体系。本章介绍Windows应用程序的类型,让读者能概要的了解Windows软件的种类和特点,本章主要修行的要点如下。 Windows应用程序和MS-DOS风格应用程序:读者将了解到Windows应用程序和MS-DOS风

2、格应用程序的联系与区别。 应用程序的类型:读者将了解到各种Windows应用程序的类型,如Win32应用程序、对话框应用程序、动态链接库、单文档应用程序(SDI)、多文档应用程序(MDI)。 MFC应用程序向导的功能:读者将学会MFC应用程序向导中的所有功能,让读者了解MFC应用程序向导会给我们带来怎么样的应用程序框架。,10.1 Windows应用程序和MS-DOS风格应用程序,Windows,顾名思义就是窗口,而后面有个“s”,也就是复数,那么自然而然就是“多窗口”,但“Windows应用程序”并不是多窗口应用程序的意思,而是运行Windows操作系统上的应用程序。 Windows操作系统

3、也是一个软件,只是这个软件地位比较高,是硬件和应用软件的承载体,称之为“操作系统”,它负责为一般的应用软件分配CPU时间、分配内存容量和内存存放时间、分配硬件资源(如是否申请打印机、扫描仪、音响等),而这个操作系统“软件”本身是多窗口的,也就是说你可以轻松地享受着柔和的mp3音乐,同时和亲朋好友聊着QQ,并且还可以同时收看网络电视体育台的MBA赛事。 事实上,这里的操作系统就实现了多道程序设计的设计理念,虽然CPU只有一个,而且在任意时间点时,CPU只能处理一个作业,但CPU处理速度非常快,所以可以将CPU的计划时间段分成若干个“时间片段”,又称之为“时间片”,假设CPU有计划时间是1妙(1s

4、),如果为完成当前10个作业分成10个时间片,则某个时间片是0.1s,也就是每个作业可以分配0.1s的处理时间,执行完一个时间片就马上跳入到下个作业的处理。,10.2 应用程序的类型,应用程序如果按照功能分,可以分为无数种,如企业财务系统、通信系统、人工智能和专家系统、印刷管理系统。如果按照框架接口和界面分类,则方便地多,而且对于程序设计语言学习者来说,不可能面向业务去学具有具体业务流程的信息化项目开发,因此,了解应用程序类型是学习集成开发环境的重要基础。,10.2.1 应用程序的类型简介,应用程序可以按照多种分类方式:按照业务类型分类、按照应用领域分类、按照框架接口和界面分类等。本书并不是某

5、个专业业务领域的书籍,着重让读者掌握Visual C+6.0集成开发环境和C+编程语言,因此,只需要读者按照框架接口和界面分类来掌握各种程序设计即可。应用程序按照框架接口和界面可以分为以下几种类型: Win32应用程序:Win32应用程序原本是指运行在Windows操作系统32位计算机平台上的应用程序,当然,其他几个种类的应用程序也是运行在这种环境下。狭义的Win32应用程序是指不使用MFC类库而直接使用Win32 SDK编写的应用程序。 对话框应用程序:对话框应用程序是MFC应用程序的一个分支,它的特点是只有一个或多个对话框,而没有文档视图结构。 动态链接库:动态链接库是Windows程序中

6、常使用的组件,编写Windows动态链接库(Windows DLL)可以让多个程序共享相同功能的代码。 单文档应用程序(SDI):对话框应用程序是MFC应用程序的一个分支,它相对于对话框应用程序具有单文档视图结构,并且可以生成对话框。 多文档应用程序(MDI) :对话框应用程序是MFC应用程序的一个分支,它相对于对话框应用程序具有多个文档视图结构,也可以生成对话框。,10.2.2 什么样的程序是Win32应用程序,在Windows1.0版本的时代,Windows本身的功能很少,并且Windows软件非常少,如果单靠Microsoft公司自行开发软件,显然是不可取的,原因在于应用软件的需求各异,

7、而且要求种类繁多,另外,有些应用软件比操作系统本身更复杂,如大型的数据库系统等。聪明的Microsoft公司的智囊们当然不会选择自己开发应用软件。 如果将应用软件集成到操作系统中如何?显然,这样更不可取,这样的操作系统非常庞大,大到几百GB的硬盘都可能放不下,因此,到目前为止,我们使用的Windows XP或Windows Vista操作系统虽然有自带的应用软件,如计算器、文档编辑器、画图工具等,但这些软件都小之又小,简单得不能再简单。 操作系统一般有两种接口:一个是键盘鼠标操作接口,一个是应用程序接口。前者是为系统使用的用户提供操作计算机的接口,后者是为程序设计人员操作计算机而提供的接口。同

8、样的道理,为了让其他软件公司能在Windows环境下编程,Microsoft公司也提供了Windows应用程序接口,实际上,这些接口就是一千多个函数集合,只要软件公司具有一个与Windows操作系统兼容的编译器,并熟练掌握这一千多个函数就可以在Windows环境下进行任意应用软件的开发。,10.3 认识打印“Hello,world!”字符串的Win32应用程序,【本节示例参考:源代码C10myWin32】 使用Visual C+6.0来创建Win32应用程序比较简单,在向导中可创建3种Win32应用程序:空项目、简单的Win32应用程序和打印“Hello,world!”字符串的程序。本节主要了

9、解这3种程序的组成和效果。,10.3.1 创建打印“Hello,world!”字符串的程序,本案例将创建一个打印“Hello,world!”字符串的程序,具体的操作步骤如下所示。,10.3.2 分析Win32应用程序的必要结构,读者可以打开“myWin32”项目的“myWin32.cpp”源文件,可以看出,Win32应用程序中,主要是3个必要的函数: 1. int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow),该函数是Win32应用程序入口的主函数。 2.

10、HWND CreateWindowEx()。该函数用于创建窗体。当然,这不同于MFC,窗口让开发者作出选择。该窗口的创建参数根据开发者的需要进行参数初始化。 3. LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)。正如前文所述,创建好初始化的窗口后,需要有函数来进行判断当前系统或用户程序产生的消息。这个函数的功能正是如此。这个函数的“内在结构”非常简单,就是一个开关语句(Switch),针对不同的消息类型,进入不同的处理段。,10.3.3 分析Win32应用程序中函数的关系和互动,Win32

11、应用程序中那么多函数,它们之间是怎么相互协调工作的呢?在这里,不能仅仅将它们看作是“函数与函数之间的内部关系”,而应该将它们看做是它们之间的内部关系以及它们与操作系统的关系之和。 Microsoft公司将Win32应用程序开发接口定义为面向过程并基于消息的,也就是按照操作系统作业排序的思想,将外界以及操作系统本身对应用程序产生的消息进行加权排序,形成消息队列,并在应用程序体进行循环监听。对于满足处理条件的消息进行及时的处理,对于不满足条件的消息进行排队等待,它们之间的关系如图10.7所示。,10.3.4 更改Win32程序的默认代码实现自己的功能,在Win32程序中处理消息队列的函数就是“窗口

12、函数”WndProc(),如代码示例10.1所示,窗口函数是负责分类处理各种消息的函数,如菜单命令消息、鼠标键盘消息等。,10.3.5 创建空项目和简单的Win32应用程序,如果创建Win32程序时选择的类型为“An empty project”,则开发工作区如图10.12所示。该项目是空项目,因此没有任何源文件、头文件或资源文件,如果有,则在对应的文件夹左边有个“+”或“-”符号,如图10.12所示。如果在创建Win32程序时选择的是“A simple Win32 application”,则将出现如图10.13所示的工作界面。,10.4 创建Win32 Console应用程序,Win32

13、Console应用程序一般称为控制台应用程序,界面和DOS类似。因为没有常见的一些功能性界面,所以初学者应用起来比较简单,就是俩功能:输入、输出。 【本节示例参考:源代码C10myWin32Console】,10.4.1 创建Win32控制台应用程序,前面学习了Win32应用程序,现在学习Win32 Console应用程序,它是Win32控制台应用程序,创建步骤如下:,10.4.2 分析Win32控制台应用程序的代码和必要组成,“A“Hello,world”application”应用程序的代码比较简单,只是用C语言风格的printf语句打印“Hello,world!”字符串,如代码示例10.

14、3所示。,10.5 对话框应用程序,【本节示例参考:源代码C10MFCDialog】 对话框应用程序可以由Win32应用程序向导创建,也可以由MFC应用程序创建,但使用MFC更简单,因此本书的对话框都是基于MFC库的。,10.5.1 创建对话框MFC应用程序,创建对话框MFC应用程序的步骤如下:,10.5.2 分析对话框MFC应用程序的代码,基于对话框应用程序的代码与以往学习的单纯的C+代码不同,和Win32应用程序类似,框架是代码生成的,但对话框是资源,由资源编辑器进行编辑,最后才由连接器将资源和源代码编译的结果连接起来。虽然两者好像互不相干,但在应用程序运行时,需要对话框上面的各种编辑框和

15、源代码中的变量值进行交互,而且这种交互是非常频繁的。因此注定了要在源代码中指定关联的资源,该对话框应用程序的对话框类代码,如代码示例10.5所示。,10.6 动态链接库,【本节示例参考:源代码C10MFCDLL】 动态链接库在Windows系统中很常见,读者只要找到对应操作系统的system32文件夹就可以发现有大量的以“.dll”为后缀的文件,这些文件就是动态链接库文件。,10.6.1 动态链接库的优点和缺点,动态链接库可以提供给应用程序或操作系统一些编译过的二进制功能代码,例如说执行某个功能的函数、调用某些程序的中介代码,下面介绍使用动态链接库的优点。 可以减小应用程序的容量。一般而言,如

16、果应用程序不调用任何动态链接库文件,则需要自己实现全部的功能逻辑,这样,代码自然就比部分功能调用动态链接库要多。 减小操作系统的负担,如动态链接库某个函数功能被100个应用程序所调用,那么,操作系统实际只需要管理动态链接库一个版本即可。反之,如果这100个应用程序各自实现自己的该函数功能,则操作系统负担将大大增加。 当然,没有什么事物是只有优点没有缺点的,使用动态链接库也会有缺点,就是如果某软件需要调用的动态链接库损坏或丢失,将可以导致该软件启动失败,或该软件执行不了部分功能,从这一方面来说,削弱了软件的健壮性。,10.6.2 创建具有两个数相乘的函数动态链接库,本节将创建具有两个数相乘的函数动态链接库文件,并在VB Script中调用这个文件,使用两个数相乘的功能,创建动态链接库的步骤如下:,10.7 单文档应用程序(SDI),【本节示例参考:源代码C10MFCSingleDoc】 本书中的范例出现最多的将会是单文档应用程序了。本书所说的单文档应用程序是指由MFC类库框架生成的单文档应用程序,单文档应用程序的创建过程如下:,10.8 多文

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

当前位置:首页 > 高等教育 > 大学课件

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