Приложение S60 - Symbian C ++ - кнопка выхода не работает - PullRequest
2 голосов
/ 11 декабря 2008

В моем приложении Symbian S60 мое меню опций работает должным образом. Но кнопка «Выход» ничего не делает.

Я работаю с Carbide и использовал UI Designer для добавления элементов в меню параметров.

Кто-нибудь знает, как включить кнопку выхода или почему она может не работать?

Спасибо!

Ответы [ 4 ]

2 голосов
/ 11 декабря 2008

Вы обрабатываете (в своем appui::HandleCommandL) идентификаторы команд EEikCmdExit и EAknSoftkeyExit?

    if ( aCommand == EAknSoftkeyExit || aCommand == EEikCmdExit )
        {
        Exit();
        }
1 голос
/ 11 декабря 2008

Команды обрабатывались в моем главном окне

Так что я изменил это на ...

void CMyContainerView::HandleCommandL( TInt aCommand )
    {

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


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


    }

Спасибо всем:)

1 голос
/ 11 декабря 2008

Какой ресурс CBA (раскладка функциональных клавиш) вы используете? R_AVKON_OPTIONS_EXIT? Вы обрабатываете команды выхода любым другим способом? или вы ловите вызов Exit()? Вы даже получаете код EEikCmdExit? Если у вас commandHandled логическое значение , установлено ли значение EFalse?

1 голос
/ 11 декабря 2008

Вы изучили метод HandleCommandL( TInt aCommand ) класса AppUi вашего приложения? Например, во всех проектах пользовательского интерфейса, которые я создаю с помощью Carbide, в методе HandleCommandL() автоматически присутствует следующее:

void MyAppUi::HandleCommandL( TInt aCommand )
{
    TBool commandHandled = False;
    switch ( aCommand )
    {
        default:
            break;
    }

    if ( !commandHandled )
    {
        if ( aCommand == EAknSoftkeyExit || aCommand == EEikCmdExit )
        {
            Exit();
        }
     }
}
...