深入探索Symbian多视图程序开发
2010-06-22 03:03:00 来源:WEB开发网我们知道,在大多数GUI的Applications中,视图之间的切换是极其频繁的。那么如何组织这些视图以及视图之间的通讯,就成为大多数Applications所要面对的问题。
在Symbian中多视图应用程序之间的视图管理可以用下图来表示:
其中AppUI管理AppView,而AppView又管理Container。
AppUI继承自CAknViewAppUi,其管理AppView的代码如下:
view plaincopy to clipboardprint?
CAppView1* iView1 = new(ELeave) CAppView1;
CleanupStack::PushL( iView1 );
videoView->ConstructL();
AddViewL( iView1 );
CleanupStack::Pop();// view1
CAppView2* iView2 = new(ELeave) CAppView2;
CleanupStack::PushL( iView2 );
userView->ConstructL();
AddViewL( iView2);
CleanupStack::Pop();// view2
SetDefaultViewL(*iView1);
CAppView1* iView1 = new(ELeave) CAppView1;
CleanupStack::PushL( iView1 );
videoView->ConstructL();
AddViewL( iView1 );
CleanupStack::Pop();// view1
CAppView2* iView2 = new(ELeave) CAppView2;
CleanupStack::PushL( iView2 );
userView->ConstructL();
AddViewL( iView2);
CleanupStack::Pop();// view2
SetDefaultViewL(*iView1);
而其中每个View又继承自
view plaincopy to clipboardprint?
class CAppView1: public CAknView , public MCoeControlObserver
class CAppView2: public CAknView , public MCoeControlObserver
class CAppView1: public CAknView , public MCoeControlObserver
class CAppView2: public CAknView , public MCoeControlObserver
View之间要想实现自由的切换,就必须定义一个TUid作为自身的唯一标识并实现CAknView的方法
view plaincopy to clipboardprint?
// UID of view
const TUid KViewId = {1};
/**
* From CAknView returns Uid of View
- ››深入理解JAR包
- ››探索 ConcurrentHashMap 高并发性的实现机制
- ››深入分析Volatile的实现原理
- ››深入理解Flash Player的应用程序域(Application ...
- ››深入理解flash函数(AS2)
- ››Symbian S60 SocketConnection参数
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
- ››Symbian下自动切换SDK的批处理代码
更多精彩
赞助商链接