BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message == WM_LBUTTONDBLCLK)
{
CMFCTabCtrl* pTabCtrl = m_wndClientArea.GetFirstTabWnd();
if(pTabCtrl->GetSafeHwnd() == pMsg->hwnd)
{
//CRect rect
//pTabCtrl->GetTabsRect(rect);
CPoint pt(pMsg->pt);
pTabCtrl->ScreenToClient(&pt);
if(pTabCtrl->IsPtInTabArea(pt) && (pTabCtrl->GetTabFromPoint(pt) == -1))
{
theApp.OpenDocFile();
}
}
}
return CMDIFrameWndEx::PreTranslateMessage(pMsg);
}
双击选项卡,产生一个新的文件,首先判断是否是双击事件,然后判断是否是双击选项卡,这里用 GetFirstTabWnd()是只有一个CMFCTabCtrl的情况下,pTabCtrl->IsPtInTabArea(pt)判断是否在选项卡所在的区域,pTabCtrl->GetTabFromPoint(pt) == -1是排除已经打开的tab地方不需要产生新的文件