S60 应用程序 - Symbian C++ - 退出按钮不起作用

Posted

技术标签:

【中文标题】S60 应用程序 - Symbian C++ - 退出按钮不起作用【英文标题】:S60 application - Symbian C++ - Exit button doesn't work 【发布时间】:2008-12-11 16:34:04 【问题描述】:

在我的 Symbian S60 应用程序中,我的选项菜单按预期工作。但是退出按钮什么也没做。

我正在使用 Carbide 进行开发,并使用 UI 设计器将项目添加到选项菜单。

有谁知道如何启用退出按钮,否则为什么它可能不起作用?

谢谢!

【问题讨论】:

【参考方案1】:

您是否正在处理(在您的 appui::HandleCommandL 中)命令 ID EEikCmdExitEAknSoftkeyExit?

    if ( aCommand == EAknSoftkeyExit || aCommand == EEikCmdExit )
        
        Exit();
        

【讨论】:

【参考方案2】:

您是否查看过应用程序的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();
        
     

【讨论】:

【参考方案3】:

您使用的是什么 CBA 资源(软键按钮布局)? R_AVKON_OPTIONS_EXIT?您是否以任何其他方式处理退出命令?或者你是在诱捕Exit() 电话吗?您甚至收到EEikCmdExit 代码吗?如果您有commandHandled boolean,是否设置为EFalse

【讨论】:

【参考方案4】:

我的主视图中正在处理命令

所以我把它改成了这个……

void CMyContainerView::HandleCommandL( TInt aCommand )
    

    TBool commandHandled = EFalse;
    switch ( aCommand )
           
                // ...
        default:
            break;
        


    if ( !commandHandled ) 
        
            AppUi()->HandleCommandL(aCommand);
        


    

谢谢大家:)

【讨论】:

以上是关于S60 应用程序 - Symbian C++ - 退出按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章

symbian s60 上的 XML 解析错误

Symbian S60 第三版。 FP2 SDK注册

QT for symbian 中自定义菜单怎么实现?

如何为 Symbian OS V2 开发应用程序?

symbian c++ 中使用 Carbide 的 tcp 连接

symbian C++ 精简库