Symbian C++学习之——状态面板

    状态面板占据了屏幕的顶部区域,用于显示与当前应用程序和设备自身的状态有关的信息。

 

 

1. 更改状态面板的可见性

   

 状态面板——可见性打开状态面板——可见性关闭

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                 

                    图1-1 状态面板——可见性打开                                               图1-2状态面板——可见性关闭

 

 

要实现上面的功能,需要在StatusPane实例中的CStatusPaneAppUi::HandleCommandL()方法中添加如下代码:

 

void CStatusPaneAppUi::HandleCommandL(TInt aCommand)
 {
 switch (aCommand)
  {
  case EEikCmdExit:
  case EAknSoftkeyExit:
   Exit();
   break;
  case EStatusPaneCmdChangeVisibility:
   {
   //获取面板指针
   CEikStatusPane* statusPane = this->StatusPane();
   
   //CurrentLayoutResId返回当前布局的资源ID
   if(statusPane->CurrentLayoutResId() != R_AVKON_STATUS_PANE_LAYOUT_EMPTY)
    {
    /**
     * SwitchLayoutL()把状态面板的布局改为指定的资源ID
     * R_AVKON_STATUS_PANE_LAYOUT_EMPTY把状态面板指定为“隐藏”
     * R_AVKON_STATUS_PANE_LAYOUT_USUAL指定状态面板显示“标准布局”
     * R_AVKON_STATUS_PANE_LAYOUT_IDLE 指定状态面板显示“带时钟的标准布局”
     * R_AVKON_STATUS_PANE_LAYOUT_POWER_OFF_RECHARGE
     */
    statusPane->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_EMPTY);
    }
   else
    {
    statusPane->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_USUAL);
    //statusPane->SetDimmed(ETrue);
    //statusPane->SetFaded(ETrue);
    //statusPane->MakeVisible(ETrue);
    }
   break;
   }
  default:
   Panic(EStatusPaneUi);
   break;
  }
 }

 

 

2.处理状态面板尺寸的更改

   在把状态面板设置为不可见时仍然能够看到上一屏的状态面板,因为没有调整容器的尺寸,即没有调用SizeChanged()方法。为了调用该方法需要重写容器的HandleStatusPaneSizeChange()方法,如在StatusPane实例中,重写视图类中的CAknView::HandleStatusPaneSizeChange()方法:

 

void CStatusPaneView1::HandleStatusPaneSizeChange()
 {
 iAppView->SetRect(ClientRect());
 }

 

当状态面板的尺寸更改时,框架会调用此方法,把状态面板设置为不可见后,容器可选的区域会增加。

 

 

 

 

StatuPane实例是动态的更改状态面板,也可以通过定义STATUS_PANE_APP_MODEL、并且在EIK_APP_INFO中引用它而在资源文件中静态设置状态面板。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值