设为首页 加入收藏

TOP

17.2.3 设置图形上下文
2013-10-07 01:04:11 来源: 作者: 【 】 浏览:71
Tags:17.2.3 设置 图形 上下文

17.2.3  设置图形上下文

CGraphicsContext保存有几个对绘制函数重要的上下文项:

画笔(pen)定义绘制模式(颜色和样式)。它们用来绘制线、填充形状的轮廓以及文本。绘制模式选项包括对像素颜色值的布尔运算,最有用的是纯色填充(使用指定的颜色)、空(不进行绘制)以及和白色进行异或(XOR)运算(反转,这对于光标选择、橡皮条等有用)。样式选项包括实线、点线、虚线,还有画笔宽度。然而,绘制屏幕图形的BITGDI(在第 15 章已经见过)不支持样式和画笔宽度的组合,即它不能绘制粗点线。使用SetPenColor()、SetPenStyle()和SetPenSize()成员函数控制画笔。默认的,画笔是黑色、实线,厚度为1个像素;

画刷(brush)定义了填充、背景色或样式。画刷可以是空的、实心的、阴影模式或位图。对于阴影和位图,可以设置一个偏移,使模式填充毗连的绘图基元时,不会产生古怪的边界效果。使用 SetBrushStyle()、SetBrushColor()、SetBrushOrigin()、SetBrushPattern()和DiscardBrushPattern()来控制画刷的设置;默认是空画刷、0原点;

字体(font)定义用来绘制文本的字体。通过传递 CFont*对象给 CGraphicsContext 来指定字体。CONE环境只有一种字体(iCoeEnv->NormalFont()),而UIQ和S60环境包含几种字体(iEikonEnv->TitleFont()、LegendFont()、SymbolFont()、AnnotationFont()和DenseFont())。使用UseFont()来设置字体,使用DiscardFont()来表示不希望继续使用字体,使用 SetUnderlineStyle()和 SetStrikethroughStyle()来设置正在使用的字体的算法增强。默认状况下,不使用字体和算法增强功能。如果试图不使用字体绘制文本,将导致严重错误;

当前位置(current position)由MoveTo()和各种DrawTo()成员函数设置,由MoveBy()和一系列的DrawBy()函数移动。它也会受到DrawPolyLine()的影响。MoveBy()和DrawBy()函数支持相对移动和绘制。默认时,当前位置是(0,0); 

原点(origin)定义相对于设备原点的偏移,绘制时使用该偏移,可以使用SetOrigin()来控制它。默认时,原点是(0,0);

剪裁区域(clipping region)定义图形中想要进行剪裁的区域。可以指定一个简单的矩形或者任意复杂度的区域。使用 SetClippingRect()来设置矩形剪裁区域,而用CancelClippingRect()来取消它。默认时,未应用任何剪裁区域(除了设备的限制);

能够为各种 DrawText()设置专门的对齐(justification)设置,不过,最好不要直接从自己的代码中调用它。相反,应该使用Symbian操作系统中的FORM组件来创建文本视图。 使用Reset()将全部上下文设置为默认值。  

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇17.1 绘图基础 下一篇17.1.2 获取图形上下文

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: