新手问题:S60 3rd 如何动态改变菜单?

extreme 2007-05-11 09:54:51
刚接触Symbian开发。
SDK 是 3rd MR,开发环境 VS2003 + Carbaide vs 2.01
我想实现,比如在功能A下,按左键(选项)出现123几个选项,而在功能B下,按左键出现456几个选项。
建工程该选哪项呢?修改rss文件已有的菜单资源,这样就写死了。而新添加的菜单资源又不知该如何调用。
...全文
562 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
matchboy 2008-09-01
  • 打赏
  • 举报
回复
关注!
dyw 2007-06-17
  • 打赏
  • 举报
回复
可以动态创建菜单项,参考下述代码:

CEikMenuPaneItem::SData itemData;
itemData.iFlags = 0;
itemData.iCascadeId = 0;
itemData.iCommandId = EYourCommandId;
CEikonEnv::Static()->ReadResourceL(itemData.iText, R_STR_YOUR_COMMAND);
aMenuPane->InsertMenuItemL(itemData, 0);

更到例子可在网上查找InsertMenuItemL等相关函数。
wenstory 2007-06-14
  • 打赏
  • 举报
回复
假如有2个view,为它们建立emun值iUiState
enum TUiState
{
EWrite = 1,
EMsgSent
};

TUiState iUiState;

然后使用如下的方法隐藏菜单
aMenuPane->SetItemDimmed( ESend, !(iUiState == EWrite) );

只要在view切换时对应修改iUiState的值就行了

这样就算是40多个菜单项都只是写一次而已
希望对你有帮助

严重鄙视楼上的楼上做广告的,令人烦了
isarc 2007-06-14
  • 打赏
  • 举报
回复
这么多菜单项,建议你修改程序设计。
hanxiao_0210 2007-06-13
  • 打赏
  • 举报
回复
mark
rz_hansen 2007-05-27
  • 打赏
  • 举报
回复
UI设计,跨平台开发,看看这个:http://download.csdn.net/source/180559
isarc 2007-05-23
  • 打赏
  • 举报
回复
到 newlc上去搜索。
xiaoyao888 2007-05-14
  • 打赏
  • 举报
回复
可以啊,具体方法你可以参考SDK的例子,在Series60Ex\menu下
extreme 2007-05-14
  • 打赏
  • 举报
回复
谢谢回复。
不过我这个项目所有菜单项加起来有40-50个之多,设置隐藏恐怕麻烦了些。
不知道这样行不行,就是建立多个View,每个View有独立的菜单项,屏蔽左右方向键来阻止用户自己切换View,通过程序本身切换View来切换需要的菜单。各位给点意见?
xiaoyao888 2007-05-11
  • 打赏
  • 举报
回复
资源文件里添加所有菜单
调用时通过判断来隐藏某些菜单项
bobya2003 2007-05-11
  • 打赏
  • 举报
回复
我遇到这种情况的时候就不用资源文件,直接动态改菜单
CTextListBoxModel* model = pList->Model(); // Does not own the returned model
User::LeaveIfNull(model);
model->SetOwnershipType(ELbmOwnsItemArray);

CDesCArray* itemArray = static_cast<CDesCArray*>(model->ItemTextArray());
User::LeaveIfNull(itemArray);

itemArray->Reset(); // Remove content from the array

3,120

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧