17.9.2 应用程序中与尺寸和目标无关的绘制
图形应用程序可能需要支持缩放和在不同的目标上绘制:不同的屏幕或打印机,或者不同类型的智能手机,这些手机具有不同的屏幕尺寸。
对于每个目标来说,支持尺寸无关性的类都是相同的:CGraphicsContext、MGraphics DeviceMap、MGraphicsDevice和TZoomFactor。根据不同的目标,必须按不同的方式实现这些类。这些类都是图形设备接口(Graphics Device Interface,GDI)的一部分。应用程序的绘制代码使用GDI类的功能和设置。
本章中的“绘图”应用实例演示如何在屏幕设备上实现缩放功能。对于屏幕设备来说,需要使用控件(从 CCoeControl 派生而来)以允许用户和图形进行交互,并且使用GUI来显示和提供应用程序接口。学习该示例的代码后,我们将了解将图形输出到打印机时,如何重用与尺寸无关的代码。
可以从 developer.symbian.com/main/academy/press 中下载该应用程序的示例代码。图 17.13 显示了运行该示例时的屏幕画面。左上方和右下角的矩形表明需要执行“完全的重绘”,而不是在已有的图形上进行绘制,我们将在后面回过头来再讨论相关知识。
该应用程序的结构如图 17.14 所示。为了在上下文中设置与尺寸无关的代码,表17.2简单地演示示例应用程序类如何协同工作。如需了解更多的细节,参见相关的示例代码。
表17.2
【责任编辑:
董书 TEL:(010)68476606】