次の方法で共有


CMDIFrameWndEx::OnShowMDITabContextMenu

更新 : 2007 年 11 月

いずれかのタブにショートカット メニューが表示される前に、フレームワークによって呼び出されます。MDI タブ付きグループについてのみ有効です。

virtual BOOL OnShowMDITabContextMenu(
   CPoint point,
   DWORD dwAllowedItems,
   BOOL bTabDrop 
);

パラメータ

  • [入力] point
    メニューの画面座標での位置。

  • [入力] dwAllowedItems
    現在のタブで実行できるアクションを示すフラグのビットごとの OR の組み合わせ。

    • BCGP_MDI_CREATE_VERT_GROUP: 垂直のタブ グループの作成

    • BCGP_MDI_CREATE_HORZ_GROUP: 水平のタブ グループの作成

    • BCGP_MDI_CAN_MOVE_PREV: 前のタブ グループへのタブの移動

    • BCGP_MDI_CAN_MOVE_NEXT: 次のタブ グループへのタブの移動

    • BCGP_MDI_CAN_BE_DOCKED: タブ付きドキュメントのドッキング状態への切り替え (タブ付きドキュメントについてのみ)

  • [入力] bTabDrop
    タブが他のタブ付きグループにドラッグされた場合にメニューを表示するには TRUE。現在アクティブなタブにショートカット メニューとしてメニューを表示するには FALSE。

戻り値

このメソッドを CMDIFrameWndEx クラス の派生クラスでオーバーライドします。

解説

OnShowMDITabContextMenu を処理しない場合、ショートカット メニューは表示されません。この関数は、MDI タブ付きグループ機能を有効にしたときに、MFC アプリケーション ウィザードによって生成されます。

使用例

VisualStudioDemo サンプル : MFC Visual Studio アプリケーションOnShowMDITabContextMenu を使用する方法を次の例に示します。

BOOL CMainFrame::OnShowMDITabContextMenu(CPoint point, DWORD dwAllowedItems, BOOL bDrop)
{
    CMenu menu;
    VERIFY(menu.LoadMenu(bDrop ? IDR_POPUP_DROP_MDITABS : IDR_POPUP_MDITABS));

    CMenu* pPopup = menu.GetSubMenu(0);
    ASSERT(pPopup != NULL);

    if ((dwAllowedItems & AFX_MDI_CREATE_HORZ_GROUP) == 0)
    {
        pPopup->DeleteMenu(ID_MDI_NEW_HORZ_TAB_GROUP, MF_BYCOMMAND);
    }

    if ((dwAllowedItems & AFX_MDI_CREATE_VERT_GROUP) == 0)
    {
        pPopup->DeleteMenu(ID_MDI_NEW_VERT_GROUP, MF_BYCOMMAND);
    }

    if ((dwAllowedItems & AFX_MDI_CAN_MOVE_NEXT) == 0)
    {
        pPopup->DeleteMenu(ID_MDI_MOVE_TO_NEXT_GROUP, MF_BYCOMMAND);
    }

    if ((dwAllowedItems & AFX_MDI_CAN_MOVE_PREV) == 0)
    {
        pPopup->DeleteMenu(ID_MDI_MOVE_TO_PREV_GROUP, MF_BYCOMMAND);
    }

    if ((dwAllowedItems & AFX_MDI_CAN_BE_DOCKED) == 0)
    {
        pPopup->DeleteMenu(ID_MDI_TABBED_DOCUMENT, MF_BYCOMMAND);
    }

    CMFCPopupMenu* pPopupMenu = new CMFCPopupMenu;
    pPopupMenu->SetAutoDestroy(FALSE);
    pPopupMenu->Create(this, point.x, point.y, pPopup->GetSafeHmenu());

    return TRUE;
}

必要条件

ヘッダー : afxMDIFrameWndEx.h

参照

概念

MFC 階層図

参照

CMDIFrameWndEx クラス