1

在大多数版本的 Windows 中,您可以通过按 F10 键进入菜单,从而避免使用鼠标。这种行为在 Windows Mobile 5.0 中似乎不存在,但由于我使用的设备更多是键盘而不是触摸屏驱动,因此是可取的。

有没有一种方法可以在 C++ 下使用 MFC 或 Windows API 调用以编程方式激活和使用 Windows Mobile 5.0 上的菜单。我尝试将 CFrameWnd 和 CCeCommandBar 类的焦点设置为无济于事。

4

2 回答 2

1

经过多次尝试,以下似乎可行;

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();
于 2008-11-02T11:14:54.463 回答
0

如果通过菜单,您的意思是软键,请注意它们分别绑定到 F1 和 F2。

于 2008-11-02T22:52:13.933 回答