zoukankan      html  css  js  c++  java
  • [S60]在程序的导航条中插入文本或图片(转)

     

    • 开发伙伴平台:

    S60 3rd Edition

    • 详细描述

    S60应用程序在前台时,可以设置导航条显示自定义图标或文本。

    首先,我们要获得一个状态栏的引用。然后可以从中获得导航栏的引用。应用程序可以使用CAknNavigationDecorator类生成一个基于文本的Navi decorator对象。最后这个对象需要添加到导航栏中以便开始显示:

    //------------------------------------------------------------------------------   CAknNavigationControlContainer* iNaviPane = 0;   CAknNavigationDecorator* iNaviDecorator = 0;   //Get the reference of the status pane   CEikStatusPane *statusPane = iEikonEnv->AppUiFactory()->StatusPane();   if ( statusPane )   {   //Get the reference of the navi pane   iNaviPane=static_cast<CAknNavigationControlContainer*>(statusPane->ControlL(   TUid::Uid(EEikStatusPaneUidNavi)) );   //Create a Navi decorator object   iNaviDecorator= iNaviPane->CreateEditorIndicatorContainerL();   //Get the reference of the indicator container inside the NaviDecorator   CAknIndicatorContainer* indiContainer =   static_cast<CAknIndicatorContainer*>(iNaviDecorator->DecoratedControl());   if ( indiContainer && CEikStatusPaneBase::Current() )   {   TBuf<32> msgSize;   msgSize.Append(_L("Test")); // Text to be displayed     indiContainer->SetIndicatorValueL(   TUid::Uid( EAknNaviPaneEditorIndicatorMessageLength ), msgSize );     indiContainer->SetIndicatorState(   TUid::Uid( EAknNaviPaneEditorIndicatorMessageLength ),   EAknIndicatorStateOn);   }       //Push the object onto the navi pane.   iNaviPane->PushL( *iNaviDecorator );   }   //------------------------------------------------------------------------------

    下面的这个示例代码,演示了如何在导航栏中显示一个图标:

    //------------------------------------------------------------------------------   CFbsBitmap* bitmap = NULL;   CFbsBitmap* mask = NULL;   CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane();   CAknNavigationControlContainer* naviPane =   (CAknNavigationControlContainer*)statusPane->ControlL(   TUid::Uid(EEikStatusPaneUidNavi));   // Create an icon   AknIconUtils::CreateIconLC (bitmap, mask, KIconFile,   EMbmCarsvgCircle, EMbmCarsvgCircle_mask); //KIconFile is the .mif file     TSize size(30,30);   AknIconUtils::SetSize(bitmap, size); // Sets the size of the extracted image   //Create a Navi Decorator encapsulation for the image.   CAknNavigationDecorator* naviDecorator =   naviPane->CreateNavigationImageL(bitmap, mask);   //Push the image onto the navi pane.   naviPane->PushL(*naviDecorator);   //------------------------------------------------------------------------------

    需要的头文件及库文件有:

    #include <aknnavi.h>               // for CAknNavigationControlContainer   #include <eikspane.h>              // for CEikStatusPane   #include <aknnavide.h>             // for CAknNavigationDecorator   #include <akniconutils.h>          // for AknIconUtils   #include <aknindicatorcontainer.h> // for CAknIndicatorContainer   LIBRARY     aknicon.lib   LIBRARY     fbscli.lib   LIBRARY     avkon.lib

    注意:程序在前台时这些导航栏上的文字和图标才得以显现,但手机待机时却不会处理。

  • 相关阅读:
    EzHttp 流传输调用代码示例
    使用EzHttp框架 开发基于HTTP协议的CS轻应用
    [转]Installing Memcached on Windows
    SQLiteServer+SQLiteClient 用于.Net项目的SQLite服务端程序和客户端类库
    ERROR: Pillow-5.2.0-cp35-cp35m-win_amd64.whl is not a supported wheel on this platform.
    Linux下的tar压缩解压缩命令详解
    scp 基于 SSH 的安全远程服务器文件拷贝
    大批量删除列表中元素的方法,自己用本办法做的
    Python 列表 pop() 方法
    可遍历的数据对象enumerate() 方法的使用
  • 原文地址:https://www.cnblogs.com/yaoliang11/p/1806455.html
Copyright © 2011-2022 走看看