Как мне использовать программные клавиши с приложением на основе CDialog в Windows mobile 6 через MFC?
-
01-07-2019 - |
Вопрос
Как мне использовать программные клавиши с приложением на основе CDialog в Windows mobile 6 через MFC?
У меня есть профессиональное приложение на базе CDialog для Windows Mobile 6 (сенсорный экран), над которым я работаю.
Поведение приложения на основе CDialog по умолчанию в WM6 Professional заключается в том, чтобы по умолчанию не использовать никаких программных клавиш...Я хочу сопоставить программные клавиши с функциями "Отмена" и "ОК", которые отправляют IDOK и IDCANCEL в мой основной класс диалога.
Я безуспешно пытался работать с CCommandBar, и SHCreateMenuBar у меня тоже не получался.
У кого-нибудь есть пример того, как заставить это работать?
Решение
Что у вас "не работает" с панелью команд?Вы должны иметь возможность добавить элемент CCommandBar в свой класс dialog, затем в InitDialog этого диалога вы вызываете 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
Другие советы
большое вам спасибо...Я сходил с ума от этого...
ваш код сработал именно так, как ожидалось...
Сначала я использовал его и получил те же результаты, область программной клавиши была пустой, за исключением кнопки ввода SIP.
Примерно через час отладки я попытался поместить эти 2 строки кода в КОНЕЦ моего OnInitDialog(), и это сработало :)
Моя проблема заключается в том, что в моем OnIitDialog() Я создаю несколько дочерних диалоговых окон.когда я устанавливаю CCommandBar.InsertMenuBar() перед созданием дочерних диалоговых окон я не получаю свои программные клавиши "ок" или "Отмена", когда я помещаю эту строку после создания дочерних диалоговых окон, программные клавиши отображаются как ожидалось и отлично работают.
Еще раз спасибо