1

Windows のほとんどのバージョンでは、F10 キーを押してメニューにアクセスできるため、マウスを使用する必要がありません。この動作は Windows Mobile 5.0 には見られないようですが、私が使用しているデバイスはタッチ スクリーンよりもキーボードが多いため、望ましい動作です。

MFC または Windows API 呼び出しのいずれかを使用して、C++ の下で 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 に答える