调用由框架在快捷菜单中某个显示选项。有效在MDI选项卡式仅组。
virtual BOOL OnShowMDITabContextMenu(
CPoint point,
DWORD dwAllowedItems,
BOOL bTabDrop
);
参数
[in] point
菜单在屏幕上的位置的坐标。[in] dwAllowedItems
指示标志的A按位或组合的操作允许当前选项卡: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 -选项卡式文档切换到停靠状态(与选定相关文档只)。
[in] bTabDrop
显示菜单的TRUE 由于拖到另一个选项卡式机组的选项。显示菜单的FALSE 为当前活动的选项卡上的一个快捷菜单。
返回值
重写在 CMDIFrameWndEx选件类的此方法的派生类。
备注
如果不处理 OnShowMDITabContextMenu,快捷菜单不会显示。当您启用MDI选项卡式组功能时,此功能由 MFC应用程序向导 生成的。
示例
下面的示例演示 OnShowMDITabContextMenu 如何在 VisualStudioDemo示例:MFC Visual Studio应用程序。
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