mfc 教程
源代码在线查看: untitled-25.txt
54 MFC Windows程序设计(第2版)
所有用来创建画刷的CBrush构造函数都会产生资源异常问题,因而也就不能创建画刷了。
将阴影线索引和 COLORREF值传送给 CBrush的构造函数或调用 CBrush:: CreateHatch
Brush都能创建一个阴影线画刷。语句
CBrush brush(HS.DIAGCROSS, RGB(255, 0, O》;
创建的阴影线画刷与下面语句创建的相同,其阴影线是由倾斜45度的垂直相交线构成的:
CBrush brush;
brush.CreateHatchBrush(HS.DIaGCROSS, RGB(255, 0, O》;
HS— DIAGCROSS是可供选择的六种阴影线样式之一(参见图 2-7)。在用阴影线画刷填
充时,除非用 CDC:: SetBkColor改变设备描述表的当前背景色,或用 CDC:: SetBkMode把背景
模式 OPAQUE改成 TRANSPARENT,禁止背景填充,否则 Windows就以默认的背景色(白色)
填充阴影线间的空白处。语句:
CBrush brush(HS.DIAGCROSS,RGB(255,255,255》;
dc.Selectobject(&brush);
dc.SetBkColor(RGB(192,192,192));
dc.Rectanale(O,0,10o,10o);
画了一个100单位X 100单位的正方形,并在浅灰色背景下填充了白色的交叉线。语句
CBrush brush(HS_DIAGCROSS, RGB(0, 0, 0》;
dc.Selectobject(&brush);
dc.SetBkMode(TRANSPARENT);
dc.Rectanale(O,0,IOO,100);
在当前的背景色下画了一个填充着黑色交叉线的矩形。
HSBDIAGONALI//// IHS FDIAGONALI\\\\ 1
HS_CROSSFI-.-.-.-.- HS HORIZONTAL ~~
HS VERTICALllllll]门
图2。7阴影线画刷