symbian自定义动态菜单


无论是在UI还是在Container中,只需要继承DynInitMenuPaneL函数就可以实现动态菜单的效果。

首先要在rss中菜单资源进行改变MENU_PANE类型函数里定义出所有需要显示的项。然后在RESOURCE EIK_APP_INFO函数里,将该MENU_PANE所从属的menubar引入,并添加:

cba = R_AVKON_SOFTKEYS_OPTIONS_BACK;语句。

同时也可以根据需要添加多个MENU_PANE项,达到多级菜单的效果

接着在DynInitMenuPaneL函数实现菜单改变,例如,可以设置两个成员变量,分别设置相反值,达到动态位置不变值改变的效果
code:
ConstructL()
{
 iMenu1 = EFalse;
 iMenu2 = ETrue;
}

HandleCommandL(TInt aCommand)
{
case ECommand1:
iMenu1 = ETrue;
iMenu2 = EFalse;

case ECommand2:
iMenu1 = EFalse;
iMenu2 = ETrue;
}

DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
//每一次的参数aResourceId都不一样。这是遍历你在rss里定义的MENU_PANE。
{
 if(R_MENU == aResourceId)//所以这里一定要用上if判断
       {       
       aMenuPane->SetItemDimmed(ECommand1, iMenu1);//SetItemDimmed()在各个平台上的实际效果各不相同
       aMenuPane->SetItemDimmed(ECommand2, iMenu2);//S60平台上SetItemDimmed()会隐藏菜单项.UIQ会使菜单变灰而失效
       }
}

如果希望更换整个左软键的选项菜单中的内容,可以再DynInitMenuPaneL外使用
iEikonEnv->AppUiFactory()->MenuBar()->SetMenuTitleResourceId(R_ADD_MENU);

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/flashtao613/archive/2009/05/07/4157893.aspx

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值