2.3.4 设备描述表
一般由Windows负责框架的重画,而由程序员负责重画客户区域。关于客户区,有一个Windows对象设备描述表(DC)与它相对应。设备描述表仅是一个Windows定义的数据结构,它包含了关于窗口对象、当前背景颜色和客户区模式、哪一个区域是无效的(需要重画)等信息。事实上,在设备描述表中包含几个小的对象,如画刷、画笔和字体,可用来在客户区绘图。在设备描述表中最重要的对象是bitmap,它是所绘图形的逻辑空间,也是Windows在屏幕、打印机和其他输出窗口中显示的空间。
用户可以将设备描述表看作是一个绘图工具箱,它包括画布及各种各样的画图工具。用户也可以改变设备描述表以及这些工具的属性。例如,可以调用函数把文本颜色由默认的黑色改变为红色,也可以选择另外一种字体。但不能没有设备描述表来绘图,在任何一个绘图处理函数中,必须首先获得一个设备描述表。
每次获得一个设备描述表时,由Windows设置它的默认属性。如果在一个函数A中,把文本颜色改变为红色,而在另外一个函数B中获得一个新的设备描述表,则在函数B中,文本颜色不是红色,而是默认的文本颜色。每次获取一个设备描述表,都为默认值。
1. 句柄
访问设备描述表可通过Windows返回的句柄,设备描述表句柄的变量类型是HDC(它在Windows中定义)。句柄提供给一个在窗口中访问的权力。在Windows中,一般采用句柄来访问某些对象和资源。它提供了许多不同类型对象的句柄,如窗口、画刷、字体等,每种对象都有个相关的句柄类型--HWND、HBRUSH和HFONT。表2.2显示了Windows不同对象的句柄。
表2.2 一些公共Windows对象及其句柄
|
对 象< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> |
句 柄 |
|
加速键表 |
HACCEL |
|
位图 |
HBITMAP |
|
画刷 |
HBRUSH |
|
光标 |
HCURSOR |
|
设备描述表 |
HDC |
|
文件 |
HFILE |
|
字体 |
HFONT |
|
图标 |
HICON |
|
菜单 |
HMENU |
|
粘贴板 |
HPALETTE |
|
画笔 |
HPEN |
|
区域 |
HRGN |
|
窗口 |
HWND |
2.Win32 API绘图函数
采用设备描述表句柄HDC,可以调用一百多个函数用于客户区绘图。表2.3显示了常用的绘图函数。
表2.3 与设备描述表相关的一些绘图函数
|
Win32函数 |
功 能 |
|
Textout |
在客户区的设定位置绘制字符串文本 |
|
Rectangle |
在设定坐标处绘制一个矩形 |
|
Ellipse |
在设定坐标处绘制一个椭圆 |
|
GetBkColor |
获取当前的背景色 |
|
SetBkColor |
设置背景色 |
|
MoveToEx(在MFC中为MoveTo) |
将绘图位置移至设定的位置处 |
|
LineTo |
从当前位置绘制一条直线到设定的位置 |
|
Arc |
绘制一个圆弧 |
|
Polygon |
绘制一个多边形 |
|
Pie |
绘制一个饼状图形 |
在MFC中,上面的函数是CDC类的成员函数,CDC表示设备描述表类,详见联机帮助系统的"CDC"索引。也可参见"device contexts"索引,并在Topics Found对话框中选择"Device Contents"。
【责任编辑:
云霞 TEL:(010)68476606】