編集の要約なし
1行目: 1行目:
== サンプルコード ==
== サンプルコード(メインメニュー項目の無効化) ==
  <source lang="c++">
  <source lang="c++">
  // CApp.cpp
  // CApp.cpp
93行目: 93行目:
  };
  };
  </source>
  </source>
<br><br>
== サンプルコード(サブメニュー項目の無効化) ==
<source lang="c++">
CWnd* pWnd      = AfxGetMainWnd();
CMenu* pMenu    = pWnd->GetMenu();
int MenuCount = pMenu->GetMenuItemCount();
for(int i = 0; i < MenuCount; i++)
{
    CString strSubMenu;
    pMenu->GetMenuString(i, strSubMenu, MF_BYPOSITION);
    if(0 == strSubMenu.Compare(_T("TEST")))
    {
      pMenu->EnableMenuItem(i, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);  // 状態を設定する
      pWnd->DrawMenuBar();
    }
}
</source>
<br>
サブメニュー項目はリソースIDを持っていないので、直接無効化することができない。<br>
上位のCMenuコントロールを用いて位置を指定して無効化する。<br>
<br>
上記のサンプルコードでは、TESTという名前の項目を検索して無効化している。<br>
また、下位の階層の項目を変更したい場合はpMenu->GetSubMenuで取得して、更に検索する。<br>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:MFC]]
[[カテゴリ:MFC]]