📄 untitled-06.txt
字号:
第2章在窗口中绘图35
.字体(Font)
.位图(BitmaP)
.调色板(Palette)
.区域(Region)
在MFC中,CPen、CBrush和CFont类分别代表了画笔、笔刷和字体(位图、调色板和区域
将在第15章中介绍)。除非调用Selectobject以改变当前画笔、笔刷或字体,否则GDI将使用
设备描述表中的默认值。默认画笔可画出一个像素点宽的黑实线;默认笔刷填充单一的白
色;默认字体是大约12个点高的相当普通的比例字体。您可以创建自己的画笔、笔刷和字
体,并将它们选人设备描述表从而改变输出的属性。例如,画一个单一红色的圆,并使它具
有10个像素点宽的黑边。这时要创建一个10个像素点宽的黑色画笔和一个红色笔刷,并
在调用Elf…e之前用SeleCmbject将它们选人设备描述表。如果叩e11是指向Cpe11对象的指
针,pBrush是指向CBmsh对象的指针,而dc代表一个设备描述表,则程序代码如下所示;
dc.SeleCtob3ect(pPen);
dc.Selectob〕ect(pBr。sh);
dc.Ellinse(O,0,100,100);
重载 Selectobject以便接受各种类型对象的指针。它的返回值为先前选人设备描述表
中的相同类型对象的指针。
每当从Windows中获取设备描述表时,设备描述表都被设置为默认值。因此,如果想在
响应WM.PAINT消息时使用红色画笔和蓝色笔刷画您的窗口,则每逢onPaint被调用时都
要将所需的画笔和笔刷选人设备描述表,也就是创建一个新的CPaintDC对象。否则,将使
用默认的画笔和笔刷。如果不想在使用设备描述表时反复对它进行初始化设定,那么可用
CDC:: SaveDC函数保存它的状态,并在下次使用时用 CDC:: RestoreDC将它恢复。另一种方
法是,注册一个自定义的WNDCLASS,其中包含CS_OWNDC样式,它使Windows为每个应用
程序实例分配它已设置好的设备描述表。(有一个相关但很少使用的WNDCLASS样式,CS_
CLASSDC,它分配一个“半私有”设备描述表。该设备描述表可被同一WNDCIASS创建的所
有窗口共享。)将红色画笔和蓝色笔刷选人某个私有设备描述表后,如果没有被显示地替换,
则它们依旧处于选中状态。
2.1.3绘图模式
GDI将像素点输出到逻辑显示平面上时,它不只是简单地输出像素点颜色。相反,它通
过一系列的布尔运算将输出像素点的颜色和输出目标位置上像素点的颜色合成在一起。它
所使用的逻辑关系由设备描述表当前的绘图模式确定。使用 CDC:: SetROPZ(Set Raster
OPeration To的缩写形式)可更改绘图模式。默认绘图模式为 RZ_COPYPEN,它将像素点复
制到显示平面上。下表显示了另外15种可以选择的绘图模式。所有这些绘图模式代表了
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -