|
| |
精品推荐 |
 |
|
| |
|
|
|
|
WINDOWS图像编程
|
日期:2005年3月9日 作者:清风网络学院 查看:[大字体
中字体 小字体]
|
图形设备接口(GDI,Graphics Device Interface)的主要目标之一是支持在输出设备(如视频显示器、打印机和绘图仪)上的与设备无关的图形。 GDI通过将应用程序与不同输出设备特性相隔离,使Windows应用程序能够毫无问题地在Windows支持的任何图形输出设备上运行。 Windows中的图形基本上是由从GDI.EXE模块中输出的函数处理的(尽管一些绘制函数实际上具有USER.EXE的入口点),GDI.EXE模块调用在不同驱动程序文件中的例程,其中有一个.DRV驱动程序文件用于控制显示屏幕,并且可能有一个或多个其他的.DRV驱动程序文件用来控制打印机或绘图仪。 Windows GDI使用两种坐标系统。使用虚拟坐标系统可以使程序不依赖于具体的硬件,使用设备坐标系统可以使程序和硬件紧密相联。=版权所有 软件 下载 学院 版权所有= GDI含有在Windows应用程序内部执行、且与设备无关的图形操作函数,这些函数可产生各种各样的线、正文和位图,它们可以输出到许多不同的输出设备上。GDI允许一个应用程序产生笔、刷子、字体和位图,以供特定的输出操作使用。下面列出GDI中几组比较常用的函数: ·设备上下文函数 ·椭圆和多边形函数 ·绘图工具函数 ·位图函数 ·绘图属性函数 ·正文函救 ·映射函数。 ·坐标函数 ·元文件(metafile)函数 ·区域函数 ·裁剪(clipping)函数· 窗口应用程序输出图形的操作步骤如下: ①取得指定窗口的当前显示设备上下丈,显示设备上下文实际上是一个数据结构,它包括该窗口的参数及各种图形、文字属性的现行设定值,它们对以后的图形、文字输 出命令起控制作用。 ②选择用户坐标系及映射方式。 ③设定用户坐标系中的观察窗口和设备坐标系中的显示视区。 ④输出图形、文字和图象。 ⑤释放所使用的显示设备上下文。
当想要在图形输出设备(例如屏幕或打印机)上绘制图形时,必须首先获得设备上下文的句柄。先给出这个句柄,Windows才允许程序使用设备,在GDI函数中将句柄作为一个参数传入,向Windows标明需要使用的设备。 设备上下文中包含许多属性,当GDI在不同的设备上工作时都要用到这些属性。使用这些属性可使GDI只关心起始和终止坐标的大小,而不必关心有关对象的其他属性,如颜色、背景等等,因为这些都是设备上下文的一部分。当需要修改这些属性时,只需调用一个修改设备上下文中属性的参数,以后的程序中都使用修改后的设备上下文属性。设备上下文是连接Windows应用程序、设备驱动程序以及输出设备的纽带。 获取设备上下文句柄有多种方法。最一般的方法是当处理一条消息时获得了设备上下文、并在退出窗口之前释放它。一般的处理方法如下: 在处理WM_PAINT消息时 case WM_PAINT: hdc=BeginPaint(hwnd,&ps) EndPaint (hwnd,&ps); 其数据结构为: HDC hWnd; PAINTSTRUCT ps; 而在windows.h中定义了PAINTSTRUCT的数据结构。 type struct tagPAINTSTRUCT { HDC hdC; BOOL fErase; RECT rcPaint; BOOL fRestore; BOOL flncUpdate; BYTE rgbReserved[16]; }PAINTSTRUCT; 其中,hdc用于标识显式上下文,fErase指出背景是否重画,rcPaint是涂色矩形,其余的域均为保留。这里的hdc是BeginPaint返回的设备上下文句柄,有了从DeginPaint获取的设备上下文句柄,就可以也只能在ps指出的rcPaint的矩形内绘图,EndPaint调用使这一区域有效。 第二种方法如下所示,使用这种方法获取和释放设备上下文可以在整个用户区内画图,图形在整个用户区域内都有效: hdC=GetDc (hwnd ); …画图操作… ReleaseDC (hwnd , hdc ); 使用下面第三种方法获取和释放设备上下文,可以在整个窗口内画图,图形在整个窗口内有效: hdC=GetWindowDc(hwnd); …画图操作… ReleaseDc(hwnd,hdc); 使用下面第四种方法获取和释放设备上下文,可以在整个显示器区域内画图,图形在整个显示器区域内部有效: hdc=CreateDC (lpszDriver ,lpszDevice ,lpszOutput , lpData); …画图操作… ReleaseDC(hdc); 其中lpszDriver指向设备驱动程序的DOS文件名(不带扩展名),lpszDevice指向专用设备名(例如Epson Fx-80),lpszOutput指向物理输出介质(文件或输出端口)的DOS文件名或设备名,lpData指向含有设备驱动程序的设备专用的初始化数据的DEVMODE数据结构。例如:
上一篇:WINDOWS编程基础
下一篇:Windows 2000中如何配置JDK
|
| WINDOWS图像编程 相关文章: |
|
|
|
| WINDOWS图像编程 相关软件: |
|
|
|
|