window程序设计第一章.ppt

上传人:tia****nde 文档编号:11498156 上传时间:2020-04-25 格式:PPT 页数:22 大小:2.63MB
返回 下载 相关 举报
window程序设计第一章.ppt_第1页
第1页 / 共22页
window程序设计第一章.ppt_第2页
第2页 / 共22页
window程序设计第一章.ppt_第3页
第3页 / 共22页
点击查看更多>>
资源描述
Windows程序设计第一讲概述,教师:代美,主要内容,前言Windows程序概述Windows程序工作原理课程主要内容示例程序,前言,Windows操作系统是当今世界上最为流行的操作系统。刺激了开发Windows应用软件的程序员队伍不断壮大Windows操作系统同时也是一个大的函数库,其中包含了数以千计的函数,这些函数都被封装在一个接口中,这个接口就是Windows应用程序编程接口,简称WindowsAPI。,前言,WindowsAPI也是认识Windows操作系统的一面镜子,通过它,用户可以深入系统地掌握Windows的方方面面。很难想象,一个程序员在没有掌握WindowsAPI的情况下,能编制出很好的基于Windows的应用程序来。,学习Windows程序的意义,很多开发人员由于缺少对API函数的理解,造成无用的现象,从而阻碍了它的推广。类库和控件使应用程序的开发简单很多,但是对于比较复杂和特殊的功能,使用类库和控件使难以实现的,就需要采用API函数来实现。,课程学习的主要内容,主要讲授Windows程序的工作原理、以及windows环境下基于消息机制的程序设计的思想、方法和技巧。通过具体程序讲述Windows环境下对话框及常用控件、菜单、加速键等知识。并且还讲述基于文档视图程序、DLL动态链接库等程序的设计和实现。,Windows程序概述,Windows和Windows应用程序最大的优点就是用户界面的一致性。对用户的另一个好处是使用了基于图形的图标来代表应用程序和数据。Windows操作系统提供的“所见即所得”也是一个非常友好的特点。Windows操作系统还提供了多任务功能。Windows提供了开发独立于设备的图形的能力。,Windows程序工作原理,Windows程序设计是一种完全不同于传统的DOS方式的程序设计方法,它是一种事件驱动方式的程序设计模式。从上面的讨论中可以看出,Windows应用程序在本质上是面向对象的。程序提供给用户界面的可视对象在程序的内部一般也是一个对象,用户对可视对象的操作通过事件驱动模式触发相应对象的可用方法。程序的运行过程就是用户的外部操作不断产生事件,这些事件又被相应的对象的过程处理。一般的程序流程如图ll所示。,WindowsAPI和SDK,一、WindowsAPI它是所有Windows应用程序的根本之所在。简单地说,API就是一系列的例程,应用程序通过调用这些例程来请求操作系统完成一些低级服务。在Windows这样的图形用户界面中,应用程序的窗口、图标、菜单和对话框等就是由API来管理和维护的。,WindowsAPI,(1)在DOS应用程序下,可以通过getchar()等函数直接等待键盘输入,并直接向屏幕输出。(2)而在Windows下,由于允许多个任务同时运行,应用程序的输入输出是由Windows来统一管理的。Windows操作系统包括3个内核基本元件:GDI,KERNEL,USER。,WindowsAPI具有两种基本类型:Winl6API和Win32API。但是Win32API除了几乎包括了Winl6API中的所有内容以外,还包括很多的其他内容。WindowsAPI依靠3个主要的核心组件提供Windows的大部分函数,在Winl6和Win32中,它们具有不同的名称,如表l一1所示。,二、WindowsSDKWindowsSDK(WindowsSoftwareDevelopmentKit,Windows软件开发工具包)和WindowsAPI紧密联系,它是一套帮助C语言程序员创建Windows应用程序的工具,在WindowsSDK中包括了以下几个组成部分:大量的在线帮助,这些帮助描述了Windows编程所可能用到的函数、消息、结构、宏及其他资源。各种编程工具,如对话框编辑器及图像编辑器等。,预习指导认识Windows程序,首先回忆一下原先学的C语言Windows程序引入两者对比分析Windows程序,原先用c语言编写的程序,#includemain()printf(hello,worldn);,用WindowsSDK环境编写程序,#includeintWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,PSTRszCmdLine,intiCmdShow)MessageBox(NULL,TEXT(Hello,Windows98!),TEXT(HelloMsg),0);return0;,分析后一个程序,Windows关于hello,world程序的等价程序有和文字模式版本完全相同的组件。它有一个include声明、一个程序进入点、一个函数呼叫和一个return语句。,分析后一个程序,传统的DOS程序以main()函数作为进入程序的初始人口点,在Windows应用程序中,main函数被WinMain函数取而代之,WinMain函数的原型如下:intWINAPIWinMain(HINSTANCEhInstance,/当前实例句柄;HINSTANCEhPrevInstance,/前一实例句柄;LPSTRlpCmdLine,/指向命令行参数的指针;intnCmdshow)/窗口的显示状态。所谓的句柄是一个标识对象的变量,或者是一个对操作系统资源的间接引用。句柄是指向一个“无类型对象”(Void*)的指针,也就是一个4字节长的数据。其声明是这样的:typedefvoid*HANDLEWindows是一个多任务操作系统,它可以同时运行多个程序或一个程序的多个副本。为了对同一程序的多个副本进行管理,Windows引入了实例句柄。Windows为每个应用程序建立一张表,实例句柄就好像是这张表的一个索引。Windows不仅使用句柄来管理实例,也用它来管理窗口、位图、字体、元文件、图标等系统资源。,分析后一个程序,MessageBox函数可以建立、现实和操作消息框。这个消息框包括一个定义消息和标题、以及包括图标、按钮等附加选项。构造参数如下所示intMessageBox(HWNDhWnd,/指向消息对话框建立窗体句柄LPCTSTRlpText,/指定显示消息内容LPCTSTRlpCaption,/指定显示对话框标题UINTuType/附加参数);所有附加参数都是由MB_打头的。包括三类:(1)显示按钮:MB_OK、MB_OKCANCEL、MB_ABORTRETRYIGNORE、MB_YESNOCANCEL、MB_YESNO、MB_RETRYCANCEL(2)指定按钮默认MB_DEFBUTTON1、MB_DEFBUTTON2、MB_DEFBUTTON3、MB_DEFBUTTON4(3)指定外观图标MB_ICONHAND、MB_ICONQUESTION、MB_ICONEXCLAMATION、MB_ICONASTERISK,WindowsAPI程序的开发步骤,首先,从File菜单中选New。在New对话框中,单击Projects页面标签,选择Win32Application。在Location栏中,选择一个子目录,在ProjectName栏中,输入该项目的名称,此时该名称是HelloMsg,CreateNewWorkspace复选框应该勾起来,Platforms部分应该显示Win32,选择OK。将会出现一个标题为Win32Application-Step1Of1的对话框,指出要建立一个EmptyProject,并按下Finish按钮。从File菜单中再次选择New。在New对话框中,选择Files页面标签,选择C+SourceFile。AddToProject复选框应被选中,并应显示HelloMsg。在FileName栏中输入HelloMsg.c,选中OK。,一些建议,首先需要明确一点WindowsAPI不是开发Windows的唯一方法。下面是我对于开发Windows应用程序的语言选择简单分类(1)对于开发效率要求非常高、功能非常强大的程序建议考虑使用C语言和WindowsAPIs开发Win32API应用程序(2)对于一些要求效率高的、专业商业应用程序建议考试使用通过C+封装过的WindowsAPIs开发MFCWindows应用程序(3)对于效率考虑不高,开发周期短的应用程序建议考虑使用微软最新.NET开发环境下的WindowsFrom应用程序,课后任务,利用SDK环境编写一个Windows程序利用MessageBox函数消息框主体输出“hello,大家好,我是-(你得名字)”并且分两行显示,消息框标题显示“第一个Windows程序”,并显示一个问号(“?”)的图表。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!