📄 winapi.txt
字号:
系统Shell提供了一些控制,使用这些控制可以使窗口具有与众不同的外观。由于这些
控制是由DLL支持的,是操作系统的一部分,所以它们对所有的应用程序都可用。使用通用
控制有助于使应用程序的用户界面与系统Shell及其他应用程序保持一致。由于开发一个控
制需要花费一定的时间,所以直接使用通用控制也可以节省大量的开发时间。
通用控制是由通用控制库COMCTL32.DLL支持的一个控制窗口集。与其他控制一样,一
个通用控制也是应用程序的一个子窗口,它与其他窗口联合使用,完成I/O操作。通用控制
DLL包括一个编程接口,应用程序可使用其中的函数创建和管理控制。以及从控制中接受用
户输入。
1.2.3 Shell特性
Win32 API中包含一些接口和函数,应用程序可使用它们来增强系统Shell的各方面功
能。
一个名字空间是一个符号集合,比如文件和目录名字,或数据库关键字。Shell使用一
个单层结构的名字空间来组织用户关心的所有对象,包括文件、存储设备、打印机及网络资
源。名字空间类似于文件系统的目录结构,只不过名字空间中包含的是对象,而不是文件和
目录。
快捷键(也称为一个Shell连接)是一个数据对象,它包含的信息可用于访问位于Shell
名字空间的任何位置的其他对象。使用快捷键时,应用程序不必知道对象的当前名字和位置
就可以访问该对象。可以通过快捷键访问的对象包括文件、文件夹、磁盘驱动器、打印机及
网络资源。
有几种方法可以扩展Shell。系统使用图标来表示Shell名字空间中的文件。缺省情况
下,系统对具有相同文件扩展名的所有文件都显示相同的图标。可以用一个图标句柄来改变
某特殊文件的缺省图标。使用上下文相关菜单句柄可以修改一个上下文相关菜单的内容,这
也是一种Shell扩展。当用户用鼠标右键点击或拖动一个对象时,系统会显示一个上下文相
关菜单。该上下文相关菜单中所包含的命令只应用在被点击或拖动的对象上。大多数上下文
相关菜单都包含一个Properties命令,用于显示所选中项目的属性表。一个属性表由一系
列重叠的窗口组成(每个窗口称为一页),用于显示有关某个对象的信息。属性表句柄是一
种Shell扩展,使用它可以向系统定义的属性表中添加页,或替换控制面板的属性表的某些
页。一个拷贝挂钩(Hook)句柄是一种 Shell扩展,可以允许或拒绝对一个文件对象的移
动、拷贝、删除或重命名。
系统Shell包含一个快速查看(Quick View)命令,使用户可以直接查看一个文件的内
容.而不必运行创建该文件的应用程序。文件浏览器提供了一个用于查看文件的用户界面。
Shell使用文件扩展名来确定应运行哪个浏览器。你可以为新的文件格式提供文件浏览器,
或用具有更强功能的浏览器来替换原来的浏览器。文件浏览器与文件分析器联合使用,后者
的功能是对文件名进行分析,以便确定应生成哪种类型文件的 QUck View。你还可以提供其
他的文件分析器来支持新的文件类型。
1.2.4 图形设备接口
图形设备接口(GDI)提供了一系列的函数和相关的结构,应用程序可以使用它们在显
示器、打印机或其他设备上生成图形化的输出结果。使用GDI函数可以绘制直线、曲线、闭
合图形、路径、文本以及位图图像。所绘制的图形的颜色和风格依赖于所创建的绘图对象,
即画笔、笔刷和字体。你可以使用画笔来绘制直线和曲线,使用笔刷来填充闭合图形的内部,
使用字体来书写文本。
应用程序通过创建设备环境(DC),可以直接向指定的设备进行输出。设备环境是一个
GDI管理的结构。其中包含一些有关设备的信息,比如它的操作方式及当前的选择。应用程
序可使用设备环境函数来创建DC。GDI将返回一个设备环境句柄,在随后的调用中,该句柄
用于表示该设备。例如,应用程序可以使用该句柄来获取有关该设备性能的一些信息,诸如
它的类型(显示器、打印机或其他设备),它的显示界面的尺寸和分辨率等。
应用程序可以直接向一个物理设备进行输出,比如显示器或打印机;也可以向一个“逻
辑”设备进行输出,比如内存设备或元文件。逻辑设备向应用程序所提供的保存输出结果的
格式,可以很容易地将其发送到物理设备上。一旦应用程序将输出结果记录到了一个元文件
中,那么该元文件就可以被使用任意多次,并且该输出结果可以被发送到任意多个物理设备
上。
应用程序可以使用属性函数来设置设备的操作方式和当前的选择。操作方式包括文本和
背景颜色,混色方式(也称为二元光栅操作,用于确定画笔或笔刷的颜色与绘图区域现有的
颜色如何进行混色),映射方式(用于指定GDI如何将应用程序所用的坐标映射到设备坐标
系统上)。当前的选择是指绘图时使用哪个绘图对象。
图形设备接口函数包括以下几类:
位图函数(Bltmap)
位图是一个图形对象,可将图像作为文件进行创建、处理(比例缩放、滚动、旋转和绘
制)和存储。
位图函数提供了一系列处理位图的方法。
笔刷函数(Brush)
笔刷是一种绘图工具,Win32应用程序可使用它绘制多边形、椭圆形和路径的内部。绘
图应用程序使用笔刷绘制图形;字处理应用程序使用笔刷绘制水线;计算机辅助设计(CAD)
应用程序使用笔刷绘制截面视图的内部;电子表格应用程序使用笔刷绘制饼图的扇形和直方
图的方条。笔刷函数提供了一系列创建和使用笔刷的方法。
剪裁函数(Clipping)
剪裁是一种处理过程,它将输出到某个区域或路径中的内容限制在应用程序窗口的显示
区内。剪裁函数提供了一系列处理剪裁区域的方法。
颜色函数(Color)
颜色是组成Win32应用程序所生成的图片和图像的一个重要元素。 Win32 API提供了
一系列管理和使用画笔、笔刷、文本和位图的颜色的函数。
坐标空间及映射函数(Coordinate Space and Transformation)
Win32应用程序使用坐标空间和映射函数对输出的图形进行比例缩放、旋转、转换、剪
裁和反射。
坐标空间是基于笛卡尔坐标系统的一个平面空间。该坐标系统要求有两个垂直相交的、长度
相等的坐标轴。共有4种坐标空间:现实坐标、页面坐标、设备坐标、物理设备坐标(显示
区,或桌面,或打印纸的页面)。映射方式就是改变(“映射”)对象的大小、方向和形状的
一种算法。
设备环境函数(Device Context)
设备环境是一个结构,它定义了一系列图形对象及其相关的属性,以及会影响输出结果
的绘图方式。这些图形对象包括:画笔(用于画直线),笔刷(用于绘图和填充),位图(用
于屏幕的拷贝或滚动),调色板(用于定义可用的颜色集),剪裁区(用于剪裁和其他操作),
路径(用于绘图和画图操作)。设备环境函数用于对设备环境进行创建、删除或获取信息。
填充图形函数(Filled Shape)
填充图形是一些几何图形,其轮廓由当前的画笔绘制,内部由当前的笔刷填充。共有5
种填充图形:椭圆,弦图,饼图,多边形,矩形。填充图形函数用于对填充图形进行操作。
字体和文本函数(Font and Text)
字体用于在视频显示器或其他输出设备上绘制文本。Win32 API提供了一系列用于安装、
选择和查询各种字体的字体和文本函数。
ICM 2.0函数
Microsoft Windows 98和Windows NT 5.0所使用的颜色管理方案称为 Image Color
Management版本 2.0,或ICM2.0,由一系列函数组成。
直线和曲线函数(Line and Curve)
直线和曲线用于在光栅设备上绘制输出图形。一条直线是光栅显示器上的一系列高亮像
素点(或打印纸上的一系列点),由两个点进行标识:起点和终点。一条规则曲线也是光栅
显示器上的一系列高亮像素点(或打印纸上的一系列点),符合某个二次曲线段的周界(或
一部分)。不规则曲线则是由不符合二次曲线段的一系列像素点组成。
元文件函数(Metafile)
元文件是一个结构的集合,这些结构是以与设备无关的格式存储图像。设备无关是元文
件与位图的差异之一。与位图不同,元文件保证是与设备无关的。不过,元文件有一个缺点:
它通常比位图的绘图速度慢。因此,如果一个应用程序要求有较快的绘图速度,而不需要具
有设备无关性,则应该用位图代替元文件。
元文件函数提供了一些对元文件进行操作的方法。
多显示器支持函数(Multple Display Monltors)
每个Windows工作站所支持的显示器个数是不受限制的。可以用创建邻接区域的方式安
排多个显示器。每个显示器的大小和颜色深浅都可以独立设置。
所有的显示器屏幕一起构成了一个虚拟屏幕。桌面窗口覆盖整个虚拟屏幕,而不仅仅是
某个显示屏幕。由于现有的应用程序都要求显示器具有一个原点坐标(0,0),所以虚拟屏
幕必须在某个显示器上包含原点坐标(0,0),这个显示器就被看作是主显示器。
每个物理显示设备都由一个HMONITOR类型的显示器句柄表示。一个显示器在它的整个
生存期间具有相同的HMONITOR值。
任何显示设备环境(DC)的Win32函数所返回的值都是主显示器的DC。要想获取其他
显示器的DC,可使用EnumDisplayMonitors函数。系统对每个显示器调用回调函数,为该
显示器传入一个DC值。用户可以使用该DC在该显示器上绘图。
绘图和画图函数(Painting and Drawing)
绘图和画图函数为应用程序提供了一系列在窗口中绘图的方法,以及如何创建和使用显
示设备环境(DC)的方法。
路径函数(Path)
一个路径是指一个或多个被填充、被绘制轮廓或既被填充又被绘制轮廓的图形(或形
状)。Win32应用程序将路径用作很多用途,在绘图和画图应用程序中使用路径。计算机辅
助设计(CAD)应用程序用路径来创建唯一剪裁区,绘制不规则形状的轮廓,以及填充不规
则形状的内部。路径函数用于创建、改变和绘制路径。
画笔函数(Pen)
画笔是Win32应用程序用于绘制直线和曲线的图形工具。画图应用程序使用画笔来画手
画线、直线以及曲线。计算机辅助设计(CAD)应用程序用画笔来画可见线、隐藏线、截面
线、中心线等等。字处理和桌面出版应用程序用画笔来画边界和水线。电子表格应用程序用
画笔来指明图表的趋向,以及勾勒直方图和饼图的轮廓。画笔函数提供了一系列使用画笔的
方法。
打印和打印假脱机函数(Printing and Print Spooler)
Microsoft Windows和Windows NT提供了一套完整的函数,使应用程序可以在不同的
设备上进行打印,如激光打印机,向量绘图仪,光栅打印机,以及传真机等。
矩形函数(Rectangle)
Win32应用程序使用矩形来指定显示屏幕上或窗口中的一个矩形区域。矩形函数用于对
矩形进行操作。
区域函数(Region)
区域是指一个可被填充、着色、转换和加外框的形状,包括矩形、多边形或椭圆(或这
几种形状的组合),用于完成击键测试(测试光标位置)。
区域函数用于对区域进行操作。
1.2.5 系统服务
系统服务函数为应用程序提供了访问计算机资源以及底层操作系统特性的手段,比如访
问内存、文件系统、设备、进程和线程。应用程序使用系统服务函数来管理和监视它所需要
的资源。例如,应用程序可使用内存管理函数来分配和释放内存,使用进程管理和同步函数
来启动和调整多个应用程序或在一个应用程序中运行的多个线程的操作。
系统服务函数提供了访问文件、目录以及输入输出(I/O)设备的手段。应用程序使用
文件I/O函数可以访问保存在指定计算机以及网络计算机上的磁盘和其他存储设备上的文件
和目录。这些函数支持各种文件系统,从FAT文件系统,CD-ROM文件系统(CDFS),到NTFS。
系统访问函数为应用程序提供了一些可以与其他应用程序共享代码或信息的方法。例
如,可以将一些有用的过程放到DLL中,使它们对所有的应用程序都可用。应用程序只需使
用DLL函数将动态链接库加载进来并获取各过程的地址,就可以使用这些过程了。通讯函数
用于向通讯端口写入数据及从通讯端口读出数据,并控制这些端口的操作方式。有几种内部
通讯(IPC)的方法,比如DDE、管道(Pipe)、邮槽(Mailslot)和文件映射。对于提供安
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -