none
コンテキストメニューの無効化 RRS feed

  • 質問

  • MFCのSDIプログラムでScrollViewを使っています。

    メニューバーのいくつかの項目をコンテキストメニューでも使うため、項目名を入力しIDはメニューバーのIDと同じにしました。

    コマンドは実行できるのですが条件により無効化したいコマンドがメニューバーでは無効化できているのにコンテキストメニューの方は有効のままです。

    両者を同期させるにはどうすれば良いのでしょうか?

    WM_CONTEXTMENUを以下のように処理しています。

    void COpwBEView::OnContextMenu(CWnd* /*pWnd*/, CPoint point)
    {
        // TODO: ここにメッセージ ハンドラ コードを追加します。
        CPoint pt = point;
        if(pt.x == -1 && pt.y == -1){
            pt.SetPoint(0, 0);
            ClientToScreen(&pt);
        }

        CMenu Menu;
        if (Menu.LoadMenu(IDR_CONTEXTMENU))
        {
            CMenu* pSubMenu = Menu.GetSubMenu(0);
            if (pSubMenu != NULL)
            {
                pSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, this);
            }
        }
    }

    2010年10月25日 2:05

回答

すべての返信