Ручной выход из приложения Windows Phone 8 С++

Я пишу приложение C++ DirectX без XAML для Windows Phone 8. Я столкнулся с трудностями. В требованиях к сертификации указано, что:

«Убедитесь, что либо приложение закрывается без ошибок, либо пользователь может подтвердить закрытие приложения с помощью меню или диалогового окна».

Когда на главном экране пользователь нажимает кнопку «Назад», я показываю диалог «да-нет». Когда пользователь нажимает «Да», как мне закрыть приложение?

В этой теме есть несколько решений, но они, кажется, работают только с XAML. http://social.msdn.microsoft.com/Forums/en-US/wpdevelop/thread/fdedf8f6-e691-4df6-92c7-ed3dc97bddc0/

Как закрыть приложение?


person Seagull    schedule 01.03.2013    source источник


Ответы (1)


Глядя на эту ссылку на форум MSDN, кажется, что логика нажатия клавиши «Назад» в C++/DirectX работает так же, как C#/XAML.

т.е. Если вы установите обработанный флаг command->Handled = true; в обработчике нажатия клавиши «Назад», платформа приложения не закроет приложение.

Если вы не установите флаг, платформа приложения закроет приложение.

person Paul Annetts    schedule 01.03.2013
comment
В обработчике событий я делаю command->Handled = true, чтобы показать диалог «да-нет». Если я этого не сделаю, приложение прекратит работу, не спрашивая пользователя. Но когда пользователь нажимает «да», обработчику не передается событие, поэтому этот подход не будет работать. - person Seagull; 02.03.2013
comment
Ах, это цифры, если вы отображаете свой собственный пользовательский интерфейс, а не только .NET MessageBox (что несколько сбивает с толку блокирующий вызов). - person Paul Annetts; 02.03.2013
comment
Интересно, можете ли вы сделать BackKeyPress асинхронным и дождаться своего пользовательского обработчика Да/Нет пользовательского интерфейса, не блокируя пользовательский интерфейс... - person Paul Annetts; 02.03.2013
comment
И так хорошее решение, когда для выхода из программы называлось действие GoBack. Но я не вижу способа сделать это без XAML. - person Seagull; 02.03.2013