void CAdvTabCtrl::ProcessClick(UINT nFlags, CPoint point, int nClickButton) { try { TCHITTESTINFO hti; hti.pt = point; hti.flags = TCHT_ONITEM | TCHT_ONITEMICON | TCHT_ONITEMLABEL ; int nTabID = HitTest(&hti); TCITEM TabCtrlItem; TabCtrlItem.mask = TCIF_PARAM; GetItem(nTabID, &TabCtrlItem); if(TabCtrlItem.lParam != NULL) { CChildFrame* tcf = ((CChildFrame*)TabCtrlItem.lParam); if (!tcf || !tcf->m_pView) return; if (tcf->m_bProtect && !tcf->m_pView->m_bIsActive) return; //double click close if((nClickButton==0 && pmf->m_nAllowDBC==1) || (nClickButton==1 && pmf->m_nAllowMC==1) || (nClickButton==2 && pmf->m_nAllowRC==1)) { //2.2 313 post instead send tcf->PostMessage(WM_CLOSE);// tcf->m_pView->m_bToClose = TRUE; //tcf->MDIDestroy(); } else if((nClickButton==0 && pmf->m_nAllowDBC==2) || (nClickButton==1 && pmf->m_nAllowMC==2) || (nClickButton==2 && pmf->m_nAllowRC==2)) { //save as tcf->m_pView->PostMessage(WM_COMMAND, ID_FILE_SAVEAS, 0); } else if((nClickButton==0 && pmf->m_nAllowDBC==3) || (nClickButton==1 && pmf->m_nAllowMC==3) || (nClickButton==2 && pmf->m_nAllowRC==3)) { //save html tcf->m_pView->PostMessage(WM_COMMAND, ID_FILE_SAVEHTML, 0); } else if((nClickButton==0 && pmf->m_nAllowDBC==4) || (nClickButton==1 && pmf->m_nAllowMC==4) || (nClickButton==2 && pmf->m_nAllowRC==4)) { //save html tcf->m_pView->PostMessage(WM_COMMAND, ID_FILE_AUTOSAVE, 0); } else if((nClickButton==0 && pmf->m_nAllowDBC==5) || (nClickButton==1 && pmf->m_nAllowMC==5) || (nClickButton==2 && pmf->m_nAllowRC==5)) { pmf->LockTab(tcf); } else if((nClickButton==0 && pmf->m_nAllowDBC==6) || (nClickButton==1 && pmf->m_nAllowMC==6) || (nClickButton==2 && pmf->m_nAllowRC==6)) { tcf->m_pView->PowerRefresh(); } } } catch(...){} }
BOOL CAdvTabCtrl::ClickCloseUp(CPoint point) { if (g_bCloseDown) { g_bCloseDown = 0; if (TAB_NEED_CAPTURE) ReleaseCapture(); if (g_bShowCloseIcon) { g_bShowCloseIcon = 0; GetItem(g_nCloseTabID, &TabCtrlItem); CChildFrame* tcf = ((CChildFrame*)TabCtrlItem.lParam); if (!tcf) return FALSE ; tcf->PostMessage(WM_CLOSE); tcf->m_pView->m_bToClose = TRUE; pmf->SetTabIcon(tcf->m_pView->m_nOlderIcon,g_nCloseTabID,tcf->m_pView); return TRUE; } } return FALSE; }