本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[MSVC] システムメニューの状態の変更について

文書番号: 403832

最終更新日: 2004/03/31


この資料は以下の製品について記述したものです。


概要

この資料は、MFC でのシステムメニューの状態の変更の一つの方法を紹介したもの
です。

詳細

<QUESTION>

システムメニューのメニュー項目で、移動、最大表示、最小表示、サイズ変更の
メニューの状態(使用許可、禁止、淡色表示)を変更しようとしたが受付けない。
ウインドウのスタイルを変更することなくメニューの状態を変更するにはどうしたら よいか。

<ANSWER>

表示したい状態をグローバルに保存し WM_INITMENUPOPUP のタイミングでメニューを 初期化することで解決できます。
  <例>
  void CMainFrame::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex,
                                                           BOOL bSysMenu)
  {
          CFrameWnd::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
          if( (((CMenuApp*)AfxGetApp())->m_menuf) == 0 ){
                  CMenu *smenu = GetSystemMenu( FALSE );
                  smenu -> EnableMenuItem( SC_MAXIMIZE , MF_GRAYED );
                  smenu -> EnableMenuItem( SC_MINIMIZE , MF_GRAYED );
                  smenu -> EnableMenuItem( SC_MOVE     , MF_GRAYED );
                  smenu -> EnableMenuItem( SC_SIZE     , MF_GRAYED );
          }
  }

詳細

  • Visual C++ は、米国 Microsoft Corporation の商標です。

Keywords: KBHOWTO VC10 VC15 VC20 KB403832
Technology: kbAudDeveloper kbvc150 kbVC32bitSearch kbVCsearch

inserted by FC2 system