1

古い MFC アプリがあり、メニュー項目を無効にしようとしています。

典型的な構造のメニューがあります。

File
 - Open
 - Save
 - Close
Edit
 - Cut
 - Copy
 - Paste

次のコマンドを使用します。

EnableMenuItem(hMenu,ID_FILE, MF_BYCOMMAND | MF_GRAYED);

最上位のメニュー項目のメニュー コマンドをグレー表示できます。しかし、もしそうなら

EnableMenuItem(hMenu,ID_PASTE, MF_BYCOMMAND | MF_GRAYED);

サブメニュー項目をグレーアウトできません。サブメニュー ハンドルを取得して に渡すと、何の役EnableMenuItemにも立ちません。SetMenuItemInfoどちらを使用しても役に立たない

サブメニュー項目を無効にする方法についてのアイデアはありますか? EnableMenuItem 関数に落とし穴はありますか?

4

1 に答える 1

0

MSDN によると、DrawMenuBar()を呼び出して UI を取得し、メニュー状態の変更を反映させる必要があります。

于 2013-01-15T00:43:32.953 に答える