Symbian OS应用编程图形篇之图形设备和上下文

 

Symbian OS中,在可显示窗体上画图,无论是RWindow还是RBackedUpWindow,都是通过图形设备(graphics device)和图形上下文(graphics context)来实现。图形上下文是整个画图的核心概念,在介绍它之前我们先介绍一下图形设备的概念。

 

图形设备(graphics device)

 

图形设备是对呈现图形的设备的抽象,比如屏幕、打印机等。图形设备提供了一组独立于设备的接口,应用程序使用这些接口,通过图形上下文(graphics context)来画图。图形设备其实是画图的中介,图形上下文在画图时画在这些图形设备上。

 

Symbian OS中,CGraphicsDevice类是所有图形设备的基类,它是一个抽象类。Symbian OS中具体的关于图形设备的类图如下所示:

 

 

 

 

CBitmapDevice定义了位图图形的一组接口。Window Server客户端提供了CWsScreenDevice类,实现对屏幕画图,同时实现了CFbsBitmapDevice用来画一些内存中的位图,如将一幅位图加载到内存中再图出来;另外还有CFbsScreenDevice,用来直接进行屏幕操作,而不用通过Window Server,但不常用。

 

将图形输出在打印机上和在屏幕上画图类似,只是比较复杂。因为要考虑打印页数、页眉页脚,并且还比较耗费内存。CPrinterDevice提供了打印操作的基本功能。CPrinterDevice封装了一个打印设备,其中包括当打印预览时打印页的坐标转换;选择打印设备并返回其型号。一个设备有一个页面规范,提供页面方向和大小,封装在TPageSpec类中。

图形上下文(graphics context

 

图形上下文是一个非常重要的概念,没有它你无法对图形设备画任何东西。图形上下文为图形设备提供了上下文,通俗点讲,就是提供了画图环境。它有一些设置,如画笔、画刷的颜色格式设置以及字体字形的设置,这些设置都是设备无关的。

 

图形上下文还定义了画图区域,通常情况下不能将图形画在定义的区域外;它同时还包括了很多主要的画图操作。大部分操作都在抽象类CGraphicsContext中定义。这些画图操作包括绘画和填充各种图形如点、直线、曲线、弧形、矩形、多边形、圆形及椭圆形、字体及位图等。

 

在画图时通常使用CFbsBitGcCWindowGcCAnimGc是动画相关的,一般我们不直接创建此对象,而由Window Server创建。

 

CFbsBitGc类实现了位图图形上下文,它不但可以绘画和填充各种图形,还可以绘制CFbsBitmap对象加载的图片;CWindowGc类是窗口图形上下文,大多画图操作与CFbsBitGc类相同。

 

 

 

 

通常情况,进行一个画图操作只需:

l         创建一个图形设备对象(CWsScreenDevicCFbsScreenDevice

l         创建一个图形上下文对象(CWindowGc CFbsBitGc)将其关联到已创建的图形设备对象CWindowGc(CWsScreenDevice* aDevice)CFbsBitGc::Active(CFbsDevice *aDevice)

l         按自己的需求进行图形上下文设置(画笔画刷的颜色格式、字形字体、画图区域等)。

l         调用GC的相关操作来画图。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值