在大多数Windows版本中,您可以按F10键进入菜单,从而避免使用鼠标。 这种行为似乎没有出现在Windows Mobile 5.0中,但是由于我所使用的设备将比触摸屏驱动的键盘更多,所以这种行为是可取的。
有没有在Windows Mobile 5.0上使用MFC或Windows API调用在C ++下以编程方式激活和使用菜单的方法。 我曾尝试设置CFrameWnd和CCeCommandBar类的焦点无济于事。
经过多次尝试,以下似乎工作;
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();
如果通过菜单,您是指软键,请注意它们分别绑定到F1和F2。