CMDIFrameWndEx::OnShowMDITabContextMenu
바로 가기 메뉴에서 탭 중 하나에 표시 되기 전에 프레임 워크에서 호출 됩니다.MDI 그룹에만 탭을 사용할 수 있습니다.
virtual BOOL OnShowMDITabContextMenu(
CPoint point,
DWORD dwAllowedItems,
BOOL bTabDrop
);
매개 변수
[in] point
화면 좌표에서 메뉴의 위치입니다.[in] 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-탭된 문서 (탭된 문서 관련) 도킹 된 상태로 전환 합니다.
[in] bTabDrop
TRUE결과 탭에서 다른 탭된 그룹으로 드래그 하 여 메뉴를 표시.FALSE현재 활성 탭 바로 가기 메뉴로 메뉴를 표시.
반환 값
이 메서드를 재정의 한 CMDIFrameWndEx 클래스-클래스를 파생 합니다.
설명
처리를 수행 하는 경우 OnShowMDITabContextMenu, 바로 가기 메뉴에 표시 되지 것입니다.이 함수에서 생성 되는 MFC 응용 프로그램 마법사 MDI 탭 그룹 기능을 사용 합니다.
예제
다음 예제를 보여 줍니다 어떻게 OnShowMDITabContextMenu 에 사용 되는 VisualStudioDemo 샘플: Visual Studio MFC 응용 프로그램.
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