Как использовать программные клавиши с приложением на основе CDialog в Windows Mobile 6 через MFC? - PullRequest
1 голос
/ 20 сентября 2008

Как использовать программные клавиши с приложением на основе CDialog в Windows Mobile 6 через MFC?

У меня есть приложение для Windows Mobile 6 (с сенсорным экраном) на базе CDialog Professional, над которым я работаю.

Поведение по умолчанию приложения на основе CDialog в WM6 Professional - не использовать никакие функциональные клавиши по умолчанию ... Я хочу назначить функциональные клавиши функциональности «Отмена» и «ОК», которая отправляет IDOK и IDCANCEL в мой класс главного диалога .

Я безуспешно пытался работать с CCommandBar, и SHCreateMenuBar для меня тоже не удался.

У кого-нибудь есть образец, как заставить это работать?

Ответы [ 2 ]

2 голосов
/ 20 сентября 2008

Что для вас "не работает" с CCommandBar? Вы должны иметь возможность добавить член CCommandBar в свой диалоговый класс, а затем в InitDialog DIalog вы вызываете Create и InsertMenuBar на панели команд - что-то вроде этого:

m_cmdBar.Create(this);
m_cmdBar.InsertMenuBar(IDR_MENU_RESRC_ID);

Ваш ресурс меню может выглядеть примерно так:

IDR_MENU_RESRC_ID MENU DISCARDABLE
BEGIN
MENUITEM "OK", IDOK
MENUITEM "Cancel", IDCANCEL
END
0 голосов
/ 20 сентября 2008

спасибо большое ... я схожу с ума от этого ...

ваш код работал точно так, как ожидалось ...

Сначала я использовал его и получил те же результаты, область функциональных клавиш была бы пустой, кроме кнопки ввода SIP.

После часа отладки я попытался поместить эти 2 строки кода в КОНЕЦ моего OnInitDIalog (), и это сработало:)

Моя проблема заключается в том, что в моем OnIitDialog () я создаю несколько дочерних диалогов. Когда я помещаю CCommandBar.InsertMenuBar () перед созданием дочерних диалогов, я не получаю свои программные клавиши «ОК» или «Отмена», когда я ставлю эту строку после создания дочерних диалогов, программные клавиши отображаются, как ожидается, и работают отлично. 1009 *

Еще раз спасибо

...