Как программно активировать меню в Windows Mobile - PullRequest
1 голос
/ 02 ноября 2008

В большинстве версий окон вы можете попасть в меню, нажав клавишу F10, таким образом, избегая необходимости использовать мышь. Такое поведение, по-видимому, отсутствует в Windows Mobile 5.0, но желательно, так как устройство, которое я использую, будет больше работать с клавиатурой, чем с сенсорным экраном.

Существует ли способ программной активации и использования меню в Windows Mobile 5.0 в C ++ с использованием вызовов MFC или Windows API. Я попытался установить фокус классов CFrameWnd и CCeCommandBar безрезультатно.

Ответы [ 2 ]

1 голос
/ 02 ноября 2008

После нескольких попыток появляется следующее:

void CMyFrame::OnFocusMenu()
{
  PostMessage(WM_SYSCOMMAND,SC_KEYMENU,0);
}

FWIW, ничего из перечисленного не было, где m_wndCommandBar - панель инструментов CCeCommandBar, содержащая меню;

::SetActiveWindow(m_wndCommandBar.m_hWnd);
m_wndCommandBar.PostMessage(WM_ACTIVATE,WA_ACTIVE,0);
m_wndCommandBar.PostMessage(WM_LBUTTONDOWN,0,0);
m_wndCommandBar.PostMessage(WM_LBUTTONUP,0,0);
m_wndCommandBar.OnActivate(WA_ACTIVE, NULL, FALSE);
m_wndCommandBar.SetFocus();
0 голосов
/ 03 ноября 2008

Если под меню вы подразумеваете программные клавиши, обратите внимание, что они связаны с F1 и F2 соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...