首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Symbian >

新手有关问题:S60 3rd 怎么动态改变菜单

2012-02-19 
新手问题:S60 3rd 如何动态改变菜单?刚接触Symbian开发。SDK是3rdMR,开发环境VS2003+Carbaidevs2.01我想实

新手问题:S60 3rd 如何动态改变菜单?
刚接触Symbian开发。
SDK   是   3rd   MR,开发环境   VS2003   +   Carbaide   vs   2.01
我想实现,比如在功能A下,按左键(选项)出现123几个选项,而在功能B下,按左键出现456几个选项。
建工程该选哪项呢?修改rss文件已有的菜单资源,这样就写死了。而新添加的菜单资源又不知该如何调用。

[解决办法]
我遇到这种情况的时候就不用资源文件,直接动态改菜单
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

[解决办法]
资源文件里添加所有菜单
调用时通过判断来隐藏某些菜单项
[解决办法]
可以啊,具体方法你可以参考SDK的例子,在Series60Ex\menu下
[解决办法]
到 newlc上去搜索。
[解决办法]
UI设计,跨平台开发,看看这个:http://download.csdn.net/source/180559
[解决办法]
假如有2个view,为它们建立emun值iUiState
enum TUiState
{
EWrite = 1,
EMsgSent
};

TUiState iUiState;

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

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

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

严重鄙视楼上的楼上做广告的,令人烦了
[解决办法]
这么多菜单项,建议你修改程序设计。
[解决办法]
可以动态创建菜单项,参考下述代码:

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等相关函数。

热点排行