zoukankan      html  css  js  c++  java
  • 面板的练习

    面板的练习

    s60 的面板包括:标题面板(CAknTitlePane),情景面板(CAknContextPane),及导航面板(CAknNavigationControlContainer)

    AppUi 及 AknView 提供一个 StatusPane() 的方法可以得到 CEikStatusPane 的指针,然后通过 CEikStatusPane 的 ControlL 可以

    得到标题面板、情景面板、导航面板,如

    CEikStatusPane sp = StatusPane();
    CAknTitlePane* aTitle = static_cast<CAknTitlePane*>(sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle)));
    CAknContextPane* aContext = static_cast<CAknContextPane*>(sp->ConstrolL(TUid::Uid(EEikStatusPaneUidContext)));
    CAknNavigationControlContrainer* iNavi = static_cast<CAknNavigationControlContrainer*>(sp->ControlL(TUid::Uid(EEikStaticPaneUidNavi)));

    标题面板及情景面板是单一的控件,而 CAknNavigationControlContrainer 是复合控件,复合控件可以包括标签组及标签还有图像

    对于单一控件包含文本或图片的代码如下:

    iStatusPane = StatusPane();
    _LIT(Kpic,"\\system\\apps\\MULTIVIEW\\BITMAP.MBM");
    CAknTitlePane* aTitle = static_cast<CAknTitlePane*>
    (iStatusPane->ControlL(TUid::Uid(EEikStatusPaneUidTitle)));
    aTitle->SetTextL(_L("hello"));
    // 上面是标题面板一个字符串
    CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(Kpic,EMbmBitmapS1);
    CleanupStack::PushL(bitmap);
    aTitle->SetPicture(bitmap);
    CleanupStack::PopAndDestroy();
    aTitle->SetPicture(Kpic,EMbmBitmapS2);
    aTitle->SetPictureFromFileL(Kpic,EMbmBitmapS2);
    这里有两种方式,一种是通过 CFbsBitmap ,另一种是直接通过 mbm 文件

    _LIT(Kpic,"\\system\\apps\\MULTIVIEW\\BITMAP.MBM");
    CAknContextPane* context = static_cast<CAknContextPane*>
    (iStatusPane->ControlL(TUid::Uid(EEikStatusPaneUidContext)));
    CFbsBitmap* bmp = iEikonEnv->CreateBitmapL(Kpic,EMbmBitmapS3);
    CleanupStack::PushL(bmp);
    context->SetPicture(bmp);
    CleanupStack::Pop();
    context->SetPictureFromFileL(Kpic,EMbmBitmapS3);
    这里有两种方式,一种是通过 CFbsBitmap ,另一种是直接通过 mbm 文件

    对于导航面板,可以通过 CAknNavigationDecorator* 来创建标签组或标签

    TResourceReader aReader;
    iCoeEnv->CreateResourceReaderLC(aReader,R_MY_PANE);
    CEikStatusPane* sp = iEikonEnv->AppUiFactory()->StatusPane();
    iNavi = static_cast<CAknNavigationControlContainer*>(sp->ControlL(TUid::Uid(EEikStatusPaneUidNavi)));
    //iNavi->ConstructFromResourceL(aReader);
    CleanupStack::PopAndDestroy();
    iCoeEnv->CreateResourceReaderLC(aReader,R_MY_TAB);
    this->iDecorator = iNavi->CreateTabGroupL(aReader);
    //this->iDecorator = iNavi->CreateNavigationLabelL(_L("label1"));
    CleanupStack::PopAndDestroy();
    iNavi->PushL(*iDecorator);
     

    其中试了试在 ConstructL 函数中创建一个 CFbsBitmap 对像

    CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL(Kbmp,EMbmNavitestS1);

    程序运行这到里出错,而代码没有错,可能是 iEikonEnv 这时还不能用

    显示出音量的图标来

    this->iDecorator = iNavi->CreateVolumeIndicatorL(R_AVKON_NAVI_PANE_VOLUME_INDICATOR);
    iNavi->PushL(*iDecorator);
     



    安平2009@原创
    qi_jianzhou@126.com

  • 相关阅读:
    CTFHub-Web-Web前置技能-HTTP协议-响应包源代码详解
    BurpSuite环境安装及设置
    i2 Analyst’s Notebook 9学习笔记之入门、基本概念和数据接口
    Python 练习题:用索引取出LIST中的值
    python 练习题:小明的成绩从去年的72分提升到了今年的85分,请计算小明成绩提升的百分点
    zabbix4.0 本地安装详解及步骤
    CentOS 7 安装 mysql 5.7.27 for zabbix
    win7系统 右击任务栏 资源管理器 弹出菜单“已固定”和“最近”项目不显示故障处理
    CentOS 7 新系统 手动配置网络 简要步骤
    CentOS7 firewalld防火墙 启动 关闭 禁用 添加删除规则等 常用命令
  • 原文地址:https://www.cnblogs.com/zziss/p/1737397.html
Copyright © 2011-2022 走看看