0

プログラムで構築したコンテキスト メニューを備えた win32/MFC アプリケーションがあります。

CPoint pt;
GetMenuPopupPos(&pt);
CAtlString csItem = _T("&Example");
CMenu menu;
menu.CreatePoupMenu();
menu.AppendMenu(MF_STRING, IDM_EXAMPLE_COMMAND, csItem);
menu.TrackPopupMenuEx(TPM_LEFTALIGN|TPM_LEFTBUTTON, pt.x, pt.y, this, NULL);

簡潔にするために、残りのメニュー項目は省略しました。キーボード ショートカットを含め、メニューは機能しますが、問題は、最終メニューで下線付きのショートカットが表示されないことです。

このメニューには 1 つのエントリがあります。

エントリを期待しますが(太字に下線が引かれます)。

_

下線を表示するにはどうすればよいですか?

4

1 に答える 1

3

デフォルトでは、コンテキストメニューがマウスを使用して呼び出された場合、Windowsは下線を表示しません。これは、キーボードを使用して呼び出された場合のみです。メニューを所有者が描画する以外に、この動作をオーバーライドすることはできません。

ショートカットには、ユーザーが[アンダースコアメニューのショートカットキー]オプションを選択したかどうか、またはユーザーがShift+F10またはWindowsのコンテキストメニューキーを使用してコンテキストメニューを呼び出したかどうかが表示されます。

于 2009-09-03T01:15:07.073 に答える