theEagles

I am sailing, to be with you, to be free.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

MFC MDI - Enable tab tool tips

Posted on 2012-09-10 16:49  theEagles  阅读(550)  评论(0)    收藏  举报

1. Add Message Function declaration to CMainFrame class

afx_msg LRESULT OnGetTabToolTip(WPARAM wp, LPARAM lp);

 

2. Implement Message Function to MainFrm.cpp

LRESULT CMainFrame::OnGetTabToolTip(WPARAM /*wp*/, LPARAM lp)
{
    CMFCTabToolTipInfo* pInfo = (CMFCTabToolTipInfo*) lp;
    ASSERT(pInfo != NULL);
    if (!pInfo)
    {
        return 0;
    }

    ASSERT_VALID(pInfo->m_pTabWnd);

    if (!pInfo->m_pTabWnd->IsMDITab())
    {
        return 0;
    }

    CFrameWnd* pFrame = DYNAMIC_DOWNCAST(CFrameWnd, pInfo->m_pTabWnd->GetTabWnd(pInfo->m_nTabIndex));
    if (pFrame == NULL)
    {
        return 0;
    }

    CDocument* pDoc = pFrame->GetActiveDocument();
    if (pDoc == NULL)
    {
        return 0;
    }

    pInfo->m_strText = pDoc->GetPathName();
    return 0;
}

 

3. Register Message Function

ON_REGISTERED_MESSAGE(AFX_WM_ON_GET_TAB_TOOLTIP, OnGetTabToolTip)

 

MDI Tab related messages (defined in afxbasetabctrl.h):

extern AFX_IMPORT_DATA UINT AFX_WM_ON_RENAME_TAB;
extern AFX_IMPORT_DATA UINT AFX_WM_ON_MOVE_TAB;
extern AFX_IMPORT_DATA UINT AFX_WM_CHANGE_ACTIVE_TAB;
extern AFX_IMPORT_DATA UINT AFX_WM_CHANGING_ACTIVE_TAB;
extern AFX_IMPORT_DATA UINT AFX_WM_ON_GET_TAB_TOOLTIP;