nullnullWindows程序设计
第一讲 概述教师:代美主要内容主要内容前言
Windows程序概述
Windows程序工作原理
课程主要内容
示例程序前言前言
Windows操作系统是当今世界上最为流行的操作系统。
刺激了开发Windows应用软件的程序员队伍不断壮大
Windows操作系统同时也是一个大的函数库,其中包含了数以千计的函数,这些函数都被封装在一个接口中,这个接口就是Windows应用程序编程接口,简称Windows API。前言前言Windows API也是认识Windows操作系统的一面镜子,通过它,用户可以深入系统地掌握Windows的方方面面。很难想象,一个程序员在没有掌握Windows API的情况下,能编制出很好的基于Windows的应用程序来。
学习Windows程序的意义学习Windows程序的意义很多开发人员由于缺少对API函数的理解,造成无用的现象,从而阻碍了它的推广。类库和控件使应用程序的开发简单很多,但是对于比较复杂和特殊的功能,使用类库和控件使难以实现的,就需要采用API函数来实现。课程学习的主要内容课程学习的主要内容主要讲授Windows程序的工作原理、以及windows环境下基于消息机制的程序设计的思想、
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
和技巧。通过具体程序讲述Windows环境下对话框及常用控件、菜单、加速键等知识。并且还讲述基于文档视图程序、DLL动态链接库等程序的设计和实现。Windows程序概述Windows程序概述Windows和Windows应用程序最大的优点就是用户界面的一致性。
对用户的另一个好处是使用了基于图形的图标来代
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
应用程序和数据。
Windows操作系统提供的“所见即所得”也是一个非常友好的特点。
Windows操作系统还提供了多任务功能。
Windows提供了开发独立于设备的图形的能力。Windows 程序工作原理Windows 程序工作原理 Windows 程序设计是一种完全不同于传统的DOS方式的程序设计方法,它是一种事件驱动方式的程序设计模式。
从上面的讨论中可以看出,Windows应用程序在本质上是面向对象的。程序提供给用户界面的可视对象在程序的内部一般也是一个对象,用户对可视对象的操作通过事件驱动模式触发相应对象的可用方法。程序的运行过程就是用户的外部操作不断产生事件,这些事件又被相应的对象的过程处理。 一般的程序流程如图l-l所示。
nullWindows API和 SDKWindows API和 SDK一、Windows API
它是所有 Windows应用程序的根本之所在。简单地说,API就是一系列的例程,应用程序通过调用这些例程来请求操作系统完成一些低级服务。在Windows这样的图形用户界面中,应用程序的窗口、图标、菜单和对话框等就是由API来管理和维护的。
Windows APIWindows API(1)在DOS应用程序下,可以通过getchar ()等函数直接等待键盘输入,并直接向屏幕输出。
(2)而在Windows下,由于允许多个任务同时运行,应用程序的输入输出是由Windows来统一管理的。 Windows 操作系统包括 3个内核基本元件: GDI,KERNEL,USER。nullWindows API具有两种基本类型: Winl6 API和Win32 API。但是Win32 API除了几乎包括了Winl6 API中的所有内容以外,还包括很多的其他内容。Windows API依靠 3个主要的核心组件提供 Windows的大部分函数,在Winl6和 Win32中,它们具有不同的名称,如表l一1所示。null二、Windows SDK
Windows SDK(Windows Software Development Kit, Windows软件开发工具包)和Windows API紧密联系,它是一套帮助 C语言程序员创建Windows应用程序的工具,在Windows SDK中包括了以下几个组成部分:
大量的在线帮助,这些帮助描述了Windows编程所可能用到的函数、消息、结构、宏及其他资源。
各种编程工具,如对话框编辑器及图像编辑器等。
预习指导—认识Windows程序预习指导—认识Windows程序首先回忆一下原先学的C语言
Windows程序引入
两者对比
分析Windows程序原先用c语言编写的程序原先用c语言编写的程序#include
main ()
{
printf ("hello, world\n") ;
}用Windows SDK环境编写程序用Windows SDK环境编写程序#include
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0);
return 0 ;
} 分析后一个程序分析后一个程序Windows关于「hello, world」程序的等价程序有和文字模式版本完全相同的组件。它有一个include声明、一个程序进入点、一个函数呼叫和一个return语句。分析后一个程序分析后一个程序传统的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不仅使用句柄来管理实例,也用它来管理窗口、位图、字体、元文件、图标等系统资源。分析后一个程序分析后一个程序MessageBox函数可以建立、现实和操作消息框。这个消息框包括一个定义消息和标题、以及包括图标、按钮等附加选项。构造参数如下所示
int MessageBox(
HWND hWnd, //指向消息对话框建立窗体句柄
LPCTSTR lpText, //指定显示消息内容
LPCTSTR lpCaption, //指定显示对话框标题
UINT uType //附加参数);
所有附加参数都是由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 Windows API程序的开发步骤Windows API程序的开发步骤首先,从File菜单中选New。在 New对话框中,单击Projects页面标签,选择 Win32 Application。在Location栏中,选择一个子目录,在 Project Name栏中,输入该项目的名称,此时该名称是HelloMsg,Create New Workspace复选框应该勾起来,Platforms部分应该显示 Win32,选择OK。
将会出现一个标题为Win32 Application - Step 1 Of 1的对话框,指出要建立一个Empty Project,并按下Finish按钮。
从File菜单中再次选择New。在 New对话框中,选择Files页面标签,选择 C++ Source File。Add To Project复选框应被选中,并应显示HelloMsg。在 File Name栏中输入HelloMsg.c,选中OK。 一些建议一些建议首先需要明确一点Windows API不是开发Windows的唯一方法。
下面是我对于开发Windows应用程序的语言选择简单分类
(1)对于开发效率要求非常高、功能非常强大的程序
建议考虑使用 C 语言和Windows APIs 开发Win32 API应用程序
(2)对于一些要求效率高的、专业商业应用程序
建议考试使用通过C++封装过的Windows APIs 开发MFC Windows应用程序
(3)对于效率考虑不高,开发周期短的应用程序
建议考虑使用微软最新.NET开发环境下的Windows From 应用程序
课后任务课后任务利用SDK环境编写一个Windows程序
利用MessageBox函数消息框主体输出“hello,大家好,我是------(你得名字)”并且分两行显示,消息框标题显示“第一个Windows程序”,并显示一个问号(“?”)的图表。