2008-12-11 6 views
2

В моем приложении Symbian S60 мое меню параметров работает так, как ожидалось. Но кнопка «Выход» ничего не делает.Приложение S60 - Symbian C++ - кнопка выхода не работает

Я разрабатываю карбид и использовал пользовательский интерфейс для добавления элементов в меню опций.

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

Спасибо!

ответ

2

регулируете вы (в своих appui::HandleCommandL) командных идентификаторах EEikCmdExit и EAknSoftkeyExit?

if (aCommand == EAknSoftkeyExit || aCommand == EEikCmdExit) 
     { 
     Exit(); 
     } 
1

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

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

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

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

1

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

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

void CMyContainerView::HandleCommandL(TInt aCommand) 
    { 

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


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


    } 

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