Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2108461
  • 博文数量: 413
  • 博客积分: 10926
  • 博客等级: 上将
  • 技术积分: 3862
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-09 18:14
文章分类

全部博文(413)

文章存档

2015年(5)

2014年(1)

2013年(5)

2012年(6)

2011年(138)

2010年(85)

2009年(42)

2008年(46)

2007年(26)

2006年(59)

分类:

2008-04-17 18:03:11

方案一:
RESOURCE DIALOG r_dlg_tmp
{
    flags = EAknDialogSelectionList;
    buttons = r_softkeys_options_choose;
    items =
    {
        DLG_LINE
        {
            type = EAknCtSingleGraphicListBox;
            id = ESelectionListControl;
            control =
            LISTBOX
            {
                flags = EAknListBoxSelectionList;
            };
        }
    };
}

RESOURCE CBA r_softkeys_options_choose
{
    buttons =
    {
        CBA_BUTTON
        {
            id = EAdrFindAlternatives;
            txt = "Alternativ";
        },
        CBA_BUTTON
        {
            id = EAdrFindType;
            txt = "V??¤lj";
        }
    };
}


方案二:
首先在RSS文件中建立菜单和对话框资源
RESOURCE MENU_BAR r_test_menu_bar
{
titles=
{
MENU_TITLE
{
txt = ""; // the text is not used in Series 60
menu_pane = r_test_menu_pane;
}
};
}
RESOURCE MENU_PANE r_test_menu_pane
{
items =
{
MENU_ITEM
{
command = ECmdMenuTest;
txt = TEST_TEXT;
}
};
}

RESOURCE DIALOG test_dialog
{
……
buttons = R_AVKON_SOFTKEYS_OPTIONS_BACK;
……..
}
然后需要实现一个从CaknDialog派生的对话框类,并重写OkToExitL()和ProcessCommandL()函数用于显示菜单和命令响应.
TBool CTestDialog::OkToExitL(TInt aButtonId)
{
if ( aButtonId == EAknSoftkeyOptions ) // press options button
{
CAknDialog:isplayMenuL(); // display the menu
}
else if ( aButtonId == EAknSoftkeyBack )
{
return ETrue;
}

return EFalse;
}

void CTestDialog::ProcessCommandL( TInt aCommandId )
{
switch ( aCommandId )
{
case EcmdMenuTest:
{
CAknInformationNote *note = new (ELeave) CAknInformationNote;
note->ExecuteLD( _L( "Test" ) );
}
break;
}
CAknDialog::HideMenu(); // hide the menu after commands finished
}

阅读(1815) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~