【发布时间】:2008-12-11 16:34:04
【问题描述】:
在我的 Symbian S60 应用程序中,我的选项菜单按预期工作。但是退出按钮什么也没做。
我正在使用 Carbide 进行开发,并使用 UI 设计器将项目添加到选项菜单。
有谁知道如何启用退出按钮,否则为什么它可能不起作用?
谢谢!
【问题讨论】:
标签: c++ symbian exit s60 carbide
在我的 Symbian S60 应用程序中,我的选项菜单按预期工作。但是退出按钮什么也没做。
我正在使用 Carbide 进行开发,并使用 UI 设计器将项目添加到选项菜单。
有谁知道如何启用退出按钮,否则为什么它可能不起作用?
谢谢!
【问题讨论】:
标签: c++ symbian exit s60 carbide
您是否正在处理(在您的 appui::HandleCommandL 中)命令 ID EEikCmdExit 和 EAknSoftkeyExit?
if ( aCommand == EAknSoftkeyExit || aCommand == EEikCmdExit )
{
Exit();
}
【讨论】:
您是否查看过应用程序的AppUi 类的HandleCommandL( TInt aCommand ) 方法?例如,在我使用 Carbide 创建的所有 UI 项目中,HandleCommandL() 方法中会自动显示以下内容:
void MyAppUi::HandleCommandL( TInt aCommand )
{
TBool commandHandled = False;
switch ( aCommand )
{
default:
break;
}
if ( !commandHandled )
{
if ( aCommand == EAknSoftkeyExit || aCommand == EEikCmdExit )
{
Exit();
}
}
}
【讨论】:
您使用的是什么 CBA 资源(软键按钮布局)? R_AVKON_OPTIONS_EXIT?您是否以任何其他方式处理退出命令?或者你是在诱捕Exit() 电话吗?您甚至收到EEikCmdExit 代码吗?如果您有commandHandled boolean,是否设置为EFalse?
【讨论】:
我的主视图中正在处理命令
所以我把它改成了这个……
void CMyContainerView::HandleCommandL( TInt aCommand )
{
TBool commandHandled = EFalse;
switch ( aCommand )
{
// ...
default:
break;
}
if ( !commandHandled )
{
AppUi()->HandleCommandL(aCommand);
}
}
谢谢大家:)
【讨论】: