深入探索Symbian多视图程序开发
2010-06-22 03:03:00 来源:WEB开发网View中继承自MCoeControlObserver的接口void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType)则负责每个Container所报告的事件的处理。
注意:如果View中并没Container,那么就没必要继承自MCoeControlObserver。
而Container继承自CCoeControl(它是HandleControlEventL的一个参数),CCoeControl中提供下面的方法对View中的HandleControlEventL()报告事件。
view plaincopy to clipboardprint?
case EStdKeyDevice1: //右键
{
ReportEventL((MCoeControlObserver::TCoeEvent)ECmdDeleteVideoContainer);
break;
}
case EStdKeyDevice1: //右键
{
ReportEventL((MCoeControlObserver::TCoeEvent)ECmdDeleteVideoContainer);
break;
}
而View通过以下方法对上面代码所报告的事件进行处理。
view plaincopy to clipboardprint?
void CAppView1::HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType)
{
switch(aEventType)
{
case EMenuItemCmdBack:
{
((CAVASAppUi*)(iEikonEnv->AppUi()))->HandleCommandL(EEikCmdExit);
break;
}
case ECmdDeleteVideoContainer:
{
break;
}
default:
break;
}
}
void CAppView1::HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType)
{
switch(aEventType)
{
case EMenuItemCmdBack:
{
((CAVASAppUi*)(iEikonEnv->AppUi()))->HandleCommandL(EEikCmdExit);
break;
}
case ECmdDeleteVideoContainer:
{
break;
}
default:
break;
}
}
从上面的分析可以看出:
AppView通过继承自CAknView并通过ActivateLocalViewL()切换视图。
而AppView通过继承自MCoeControlObserver监听众多的Container,并在HandleControlEventL()里对Container所报告的事件进行响应。
- ››深入理解JAR包
- ››探索 ConcurrentHashMap 高并发性的实现机制
- ››深入分析Volatile的实现原理
- ››深入理解Flash Player的应用程序域(Application ...
- ››深入理解flash函数(AS2)
- ››Symbian S60 SocketConnection参数
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
- ››Symbian下自动切换SDK的批处理代码
更多精彩
赞助商链接