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

  • 相关阅读:
    一步一步自定义SpringMVC参数解析器
    Git客户端TortoiseGit(Windows系统)的使用方法
    Tiles入门和Tiles 框架和体系结构
    SpringMVC整合Tiles框架
    JQuery和JSON方式参数传递并处理JAVAWEB中文乱码问题
    spring mvc接收JSON格式的参数
    Spring MVC Controller与jquery ajax请求处理json
    扩展SpringMVC以支持绑定JSON格式的请求参数
    SpringMVC从Control中响应json数据
    JSONP 教程
  • 原文地址:https://www.cnblogs.com/zziss/p/1737397.html
Copyright © 2011-2022 走看看