📄 untitled-24.txt
字号:
第2章在窗口中绘图53
LOGBRUSH fo;
fo-lbstyle= BS—SOLID;
fo.lbColor= RGB(0, 255, O);
CPPfi PPP(PS_GEOMETRICIPS.SOLIDIPS.ENDCAP.FLATI
PS.JOINROUND,16,&fo);
Windows对使用扩展笔有几项限制。除非图形首先作为一个“通路”画出并由 CDC::
StrokePah或一个相关函数生成,否则端点连接就无法进行。您可以通过在调用 CDC::
BeginPath和 CDC:: EndPah之间插人绘图命令来定义一条通路,如下所示:
dc.BeqinPath(); // Begin the path definition
dC.M。veT。(0,0);// Create a tr土angular path
dc.LineTo(IO0,200);
dc.LineTo(200,10o);
dc. CloseFlaure();
dC.EndPath(); //Endthepathdefinition
dc. StrokePath(); // Draw the trianqle
通路是GDI一个强有力的性能,用它可以生成各种有趣的效果。第15章将详细介绍通
路以及使用通路的CDC函数。
2.2.4**!画刷和*Bh类
在默认情况下,由Rectangle、Ellope以及其他CDC输出函数画出的封闭图形填充着白色像
素点。通过创建GDI画刷并在画图之前将它选人设备描述表可以改变图形的填充颜色。
MFC的CBrush类封装了GDI画刷。画刷有三种基本类型:单色、带阴影线和带图案。
单色画刷填充的是单色。如果显示硬件不支持直接显示单色画刷的颜色,则Windows用可
显示的抖动色模仿该颜色。阴影线画刷采用预先定义好的交叉线图案填充图形。这种图案
共有六种,类似于机械和建筑用图中常见的那些阴影线。图案画刷用位图来填充图形。
CBrush类为每种画刷样式提供了一个构造函数。
只要将COLORREF的值传递给CBrush构造函数,您就可以只用一步创建一个单色画
刷了:
CBtushbrush(RGB(255, 0, O》;
或者,也可以创建一个没有初始化的 CBrush对象,然后调用 CBrush:: CreatesolidBrush,用两步
创建一个单色画刷:
CBrush brush;
brush.CreatesolidBrush(RGB(255,0,O》;
这两个例子创建的都是颜色为亮红的单色画刷。您还可以通过将LOGBRUSH初始化
并调用 CBrush:: CreateBrushlndirect来创建画刷。和 CPen构造函数一样,如果 GDI内存不足,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -