Symbian定义属于自己MenuBar(转)

通常我们在设计UI的时候,会修改CBA的值.
在默认的情况下,窗口的CBA的左值为选项,右值为退出.
那我们应该如何修改这个值呢,其实修改此值比较容易.
我们还要保证我们能响应MeunBar里的内容.
当然还有更棒的就是,MeunBar能动态设置.
好看我们如何实现上述的功能
我们定义属于自己的CBA资源
RESOURCE CBA r_****_softkeys
{
buttons=
{
CBA_BUTTON
{
id=EAknSoftkeyOptions;//记住这里的ID不能变,如果这里的ID设置成别的值.MenuBar就不能响
应了
txt=<0x9009><0x9879>;//"选项";  //在这里可以任意设置显示的文字
},
CBA_BUTTON
{
id=EAknSoftkeyCancel;//这个ID可以任意设置
txt=<0x5207><0x6362>;//"切换";//可以任意设置文字
}
}; 
}
//如何动态设置MenuBar
重载View里的DynInitMenuPaneL
void C*****View::DynInitMenuPaneL(TInt ResourceId,CEikMenuPane* aMenuPane)
{
C****AppUi* pAppui = static_cast<CDesktopSpriteV3AppUi*>(iCoeEnv->AppUi());
if(pAppui->index == 1)//根据条件设置MenuBar的值
{
//TRue在这里表示隐藏
aMenuPane->SetItemDimmed(ECmdConfirm, ETrue);
aMenuPane->SetItemDimmed(ECmdCancel, EFalse);
aMenuPane->SetItemDimmed(ECmdDelete, EFalse);
}
else
{
aMenuPane->SetItemDimmed(ECmdConfirm, EFalse);
aMenuPane->SetItemDimmed(ECmdCancel, ETrue);
aMenuPane->SetItemDimmed(ECmdDelete, EFalse);
}
}
}
以上代码在N73/N95/E71上测试通过
http://www.3GLeader.net手机免费主题 手机软件 电子书 图片 最大的资源共享平台

原文地址:https://www.cnblogs.com/yaoliang11/p/1800652.html