【问题标题】:How to programmatically activate the menu in Windows mobile如何以编程方式激活 Windows mobile 中的菜单
【发布时间】:2008-11-02 09:52:58
【问题描述】:

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

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

【问题讨论】:

    标签: c++ windows mfc mobile


    【解决方案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();
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 在 MFC SDI 应用程序上,您通常有一个工具栏,在屏幕顶部包含文件/编辑/查看/帮助。在 Windows 和更早的 Windows CE 版本中,您可以按 F10 进入此菜单。在移动 5 中,情况似乎不再如此。可能是 OEM 特定的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      相关资源
      最近更新 更多