17.5.4 绘制的更多知识
在窗口上绘制对于程序来说是容易的,但涉及由Symbian操作系统所进行的复杂的处理,如图17.10所示。
在客户端,应用程序使用 CWindowGc 向窗口绘制。CWindowsGc 通过将命令编码并存储在窗口服务器客户端缓冲中来实现它的函数。当缓冲充满,或者当客户发出请求时,缓冲中的指令全部被发送到窗口服务器,窗口服务器解码指令,并通过直接绘制到屏幕来执行它们,这是通过CFbsBitGc 类完成的,该类从 CGraphicsContext 派生,用来在位图设备上绘制点。在绘制之前,窗口服务器设置一个剪裁区域,确保只能够改变正确的窗口的正确的区域,而不管屏幕上重叠窗口的当前状态是什么。窗口服务器使用 BITGDI 来“光栅化”绘图命令。客户端缓冲,它将几个窗口服务器命令封装成单个客户端-服务器事务,大大地提高了系统的图形性能。
现在解释以前所看到的DrawOneTileNow()函数。
这是从CCoeControl派生的COandXStatusWin的一个成员函数。中心函数是DrawOneTile (),但它和能够与窗口服务器一起正常工作的必要操作一起使用。
【责任编辑:
董书 TEL:(010)68476606】