天天看点

当鼠标移到按钮或其它控件时出现TOOLTIP

1、建一个基于对话框的程序TipTest,在CTipTestDlg中增加成员变量:  

  CToolTipCtrl   m_tip[2],CWnd   *m_pSub[2];   

2、在CTipTestDlg::OnInitDialog()函数中增加如下代码:    

  pSub[0]   =   GetDlgItem(IDC_RADIO1);           //得到单选按钮的指针  

  pSub[1]   =   GetDlgItem(IDC_BUTTON1);  

  m_tip[0].Create(pSub[0],TTS_ALWAYSTIP);     //创建CToolTipCtrl  

  m_tip[0].AddTool(pSub[0]);                               //将CToolTipCtrl与相应的控件对应起来  

  m_tip[1].Create(pSub[1],TTS_ALWAYSTIP);  

  m_tip[1].AddTool(pSub[1]);  

  m_tip[0].SetTipTextColor(RGB(0,0,255));     //设定文字的颜色  

  m_tip[0].SetDelayTime(150);                             //设定提示文字在控件上停留的时间   

3、重载CTipTestDlg::PreTranslateMessage(MSG*   pMsg)函数,增加如下代码:              

    if(m_tip[0].m_hWnd!=NULL)  

        m_tip[0].RelayEvent(pMsg);          

  //如果m_tip[0]句柄不为空,就从主窗口中捕获消息,如WM_MOUSEMOVE,WM_LBUTTONDOWN等消息 

  if(m_tip[1].m_hWnd!=NULL)  

          m_tip[1].RelayEvent(pMsg);   

4、捕获主窗口的WM_MOUSEMOVE消息,  

  在CTipTestDlg::OnMouseMove(UINT   nFlags,   CPoint   point)函数中增加如下代:  

  tip[0].UpdateTipText("hello!",pSub[0]);     //鼠标在相应的控件上移动时显示提示文字  

  m_tip[1].UpdateTipText("http://vckbase.com",pSub[1]);

继续阅读