Tooltip配置

来源:互联网 发布:淘宝网地摊用衣架 编辑:程序博客网 时间:2024/05/17 07:22
 

Tooltip配置

1.    简单式

支持tooltip:EnableToolTips(TRUE);

设定相应消息

BOOL OnTtnNeedText(UINT id, NMHDR *pNMHDR, LRESULT* pResult);

ON_NOTIFY_EX(TTN_NEEDTEXT, 0, &XXXX::OnTtnNeedText)

BOOL XXXX::OnTtnNeedText(UINT id, NMHDR *pNMHDR, LRESULT* pResult)

{

        UNREFERENCED_PARAMETER(id);

        UNREFERENCED_PARAMETER(pResult);

    TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;

    UINT_PTR nID = pNMHDR->idFrom;

    BOOL bRet = FALSE;

    CString strText;

    if (pTTT->uFlags & TTF_IDISHWND)

    {

        // idFrom is actually the HWND of the tool

        nID = ::GetDlgCtrlID((HWND)nID);

                switch(nID)

                {

                case IDC_BUTTON1:

                        strText = “AAAAA”;

                        pTTT->lpszText = (LPWSTR)(LPCTSTR) strText;

                        pTTT->hinst = AfxGetResourceHandle();

                        bRet = TRUE;

                   break;

                case IDC_BUTTON2:

                        strText = “BBBBB”;

                        pTTT->lpszText = (LPWSTR)(LPCTSTR) strText;

                        pTTT->hinst = AfxGetResourceHandle();

                        bRet = TRUE;

                        break;

                default:

                        break;

                        }

        }

     return bRet;

}

 

2.    复杂式

支持tooltip:EnableToolTips(TRUE);

定义CToolTipCtrl* m_pToolTipCtrl;

初始化的时候

        m_pToolTipCtrl = new CToolTipCtrl;

        if((NULL != m_pToolTipCtrl) && (m_pToolTipCtrl->Create(this))){

                m_pToolTipCtrl->AddTool(GetDlgItem(IDC_BUTTON1), LPSTR_TEXTCALLBACK);

                m_pToolTipCtrl->AddTool(GetDlgItem(IDC_BUTTON2), LPSTR_TEXTCALLBACK);

                m_pToolTipCtrl->Activate(TRUE);

        }else{

                TRACE(_T("Unable To create ToolTip\n"));       

        }

删除的时候

        if(m_pToolTipCtrl != NULL)

        {

                delete m_pToolTipCtrl;

                m_pToolTipCtrl = NULL;

        }

消息函数

virtual BOOL PreTranslateMessage(MSG* pMsg);

BOOL XXXX::PreTranslateMessage(MSG* pMsg)

{

        // ToolTip処理を追加する

        if(NULL != m_pToolTipCtrl){

                m_pToolTipCtrl->RelayEvent(pMsg);

        }

        return CFormView::PreTranslateMessage(pMsg);

}

设定相应消息

BOOL OnTtnNeedText(UINT id, NMHDR *pNMHDR, LRESULT* pResult);

ON_NOTIFY_EX(TTN_NEEDTEXT, 0, &XXXX::OnTtnNeedText)

BOOL XXXX::OnTtnNeedText(UINT id, NMHDR *pNMHDR, LRESULT* pResult)

{

        UNREFERENCED_PARAMETER(id);

        UNREFERENCED_PARAMETER(pResult);

    TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;

    UINT_PTR nID = pNMHDR->idFrom;

    BOOL bRet = FALSE;

    if (pTTT->uFlags & TTF_IDISHWND)

    {

        // idFrom is actually the HWND of the tool

        nID = ::GetDlgCtrlID((HWND)nID);

                switch(nID)

                {

                case IDC_BUTTON1:

                        m_strToolTipText =_T("MES000000118");

                        pTTT->lpszText = (LPWSTR)(LPCTSTR)m_strToolTipText;

                        bRet = TRUE;

                   break;

                case IDC_BUTTON2:

                        m_strToolTipText = _T("CTL000100305");

                        pTTT->lpszText = (LPWSTR)(LPCTSTR)m_strToolTipText;

                        bRet = TRUE;

                        break;

                default:

                        break;

                        }

        }

     return bRet;

}

 

原创粉丝点击