简单图形应用程序hellogui
前面生成了一个文本模式版本的“Hello World”程序,但没有人真正希望在Symbian OS这类User-friendly的系统上运行文本模式的程序。文本模式编程对测试和学习有用,但实际程序使用的是GUI。
一、图形架构简介
最重要的Symbian OS图形和GUI组件及其关系如下图所示: GUI应用程序 ^ | 应用程序架构 --> Avkon、UIKON --> Shell ^ | CONE ------------不提供任何具体控件 ^ | 窗口服务器 ^ | 字体和位图服务器 ^ | GDI 、屏幕字体 --> 代表Use
二、应用程序结构
Symbian OS GUI程序使用由Avkon和应用程序架构(APPARC)提供的框架来协调工作。最小应用程序包含4个类:
- 应用程序类 :用于定义应用程序的属性,还用于生成新的空白文档。在最简单的情况下,必须定义的唯一属性是应用程序的UID(unique identitier)
- 文档类 :表示应用程序的数据。如果应用程序是基于文件的,则文档类负责保存和恢复应用程序的数据。即使应用程序不是基于文件的,也必须具有一个文档类,尽管这个类除了创建应用程序接口为不会完成更多的事
- 应用程序UI类 :创建一个应用程序视图,来处理绘图和基于屏幕的交互
- 应用程序View类:在屏幕上显示数据,并允许用户与之交互
CHelloguiApplic CHelloguiDocument CHelloguiAppUi CHelloguiAppView ation | | | | CAknApplication CAknDocument CAknAppUi | | | | | -----APPARC---------------------------------|---------------------CONE---------------------- CApaApplications CApaDocument | CCoeAppUi CCoeControl CCoeEnv
除了4个c++类外,必须在一个资源文件中定义应用程序的GUI元素(菜单、字符串资源)。
三、第一个GUI程序hellogui.app
从命令行生成程序可遵照生成HelloWorld的相同步骤。从包含bld.inf文件的目录中,输入
bldmake bldfiles
albd build wins udeb
epoc
在Emulator的other中可以发现hellogui作为一个应用程序而显示,点击图标可以启动它。
详细描述请参考S60Examples.chm中的HelloWorld例程。 |