对话框CToolBarCtrl添加提示

 

方法1

1.           创建的TBSTYLE_TOOLTIPS类型CToolBarCtrl

2.           添加消息映射

BEGIN_MESSAGE_MAP(CCurveGraphDlg, CDialog)

       //{{AFX_MSG_MAP(CCurveGraphDlg)

       //}}AFX_MSG_MAP

       ON_NOTIFY_EX_RANGE(TTN_NEEDTEXT,   0,   0xffff,   OnToolTipText)  

END_MESSAGE_MAP()

3.           添加消息响应函数

afx_msg BOOL   OnToolTipText(UINT,   NMHDR*   pNMHDR,   LRESULT*   pResult);

4.           函数代码如下:

BOOL CXXX::OnToolTipText(UINT,NMHDR* pNMHDR,LRESULT*   pResult)  

{  

  ASSERT(pNMHDR->code == TTN_NEEDTEXTA || pNMHDR->code == TTN_NEEDTEXTW);  

   

  //   UNICODE消息  

  TOOLTIPTEXTA*   pTTTA = (TOOLTIPTEXTA*)pNMHDR;  

  TOOLTIPTEXTW*   pTTTW = (TOOLTIPTEXTW*)pNMHDR;  

  //TCHAR   szFullText[512];  

  CString strTipText;  

  UINT   nID = pNMHDR->idFrom;  

   

  if(pNMHDR->code == TTN_NEEDTEXTA  &&  (pTTTA->uFlags & TTF_IDISHWND) ||  

         pNMHDR->code == TTN_NEEDTEXTW  &&  (pTTTW->uFlags & TTF_IDISHWND))  

  {//   idFrom为工具条的HWND                 

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

  }  

   

  if(nID != 0)   //不为分隔符  

  {  

         //AfxLoadString(nID,   szFullText);  

         //strTipText=szFullText;  

         strTipText.LoadString(nID);  

         strTipText = strTipText.Mid(strTipText.Find('/n',0)+1);  

        

#ifndef  _UNICODE  

         if(pNMHDR->code == TTN_NEEDTEXTA)  

         {  

                lstrcpyn(pTTTA->szText,strTipText,sizeof(pTTTA->szText));  

         }  

         else  

         {  

                _mbstowcsz(pTTTW->szText,   strTipText,   sizeof(pTTTW->szText));  

         }  

#else  

         if(pNMHDR->code == TTN_NEEDTEXTA)  

         {  

                _wcstombsz(pTTTA->szText,strTipText,sizeof(pTTTA->szText));  

         }  

         else  

         {  

                lstrcpyn(pTTTW->szText,strTipText,sizeof(pTTTW->szText));  

         }  

#endif           

         *pResult   =   0;    

         //使工具条提示窗口在最上面  

         ::SetWindowPos(pNMHDR->hwndFrom,HWND_TOP,0,0,0,0,

                SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER);    

         return   TRUE;  

  }  

    return   TRUE;  

}  

 

方法2

1.        重载OnNotify虚函数

代码如下:

BOOL CXXXDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)

{

       // TODO: Add your specialized code here and/or call the base class

       TOOLTIPTEXT*  ptt;

       ptt = (TOOLTIPTEXT*)lParam;

 

       CString Tip;

       switch(ptt->hdr.code)

       {

       case TTN_NEEDTEXT:

              switch(ptt->hdr.idFrom)

              {

              case ID_CURVE_OPEN:// ID_CURVE_OPEN为按钮ID

                     Tip.LoadString(ID_CURVE_OPEN);

                     break;

              }

        strcpy(ptt->szText,Tip);

        break;

       }

 

       return CDialog::OnNotify(wParam, lParam, pResult);

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值