现在的位置: 首页 > 综合 > 正文

CToolTipCtrl应用

2014年02月15日 ⁄ 综合 ⁄ 共 1643字 ⁄ 字号 评论关闭

       CtoolTipCtrl封装了一个工具提示的控件,可弹出一个单行的小窗口来显示一些描述信息,大多时候它是隐藏的,除非用户将光标移到要显示提示的工具上面,并且停留大概半秒的时间它才显示,当单击鼠标或者移走光标的时候这个提示窗口就会消失

例子:给对话框的按钮添加提示功能

具体步骤:

1 首先创建一个基于对话框的应用程序ToolTips

2 在ToolTipsDlg类中定义一个CtoolTipCtrl对象
    class CToolTipsDlg : public CDialog
    {
     // Construction
     public:
               CToolTipsDlg(CWnd* pParent = NULL); // standard constructor
               CToolTipCtrl m_pToolTipCtrl;
3 创建一个工具提示控件(如按钮或静态文本框)并关联到m_pToolTipCtrl对象,(位置:OnInitDialog)
     BOOL CToolTipsDlg::OnInitDialog()
     {         .......
             SetIcon(m_hIcon, TRUE);   // Set big icon
             SetIcon(m_hIcon, FALSE);  // Set small icon
 
            // TODO: Add extra initialization here
            if (!m_pToolTipCtrl.Create(this, TTS_ALWAYSTIP)) 
            {  
                     TRACE(_T("Unable To create ToolTip\n"));
                     return FALSE;  
             }
             m_pToolTipCtrl.AddTool(GetDlgItem(IDC_BTN_TEST),_T("测试按钮"));

             return TRUE;  // return TRUE  unless you set the focus to a control
      }

       Create函数中第二个参数:风格-意义 TTS_ALWAYSTIP ,指示当光标在一个工具上时显示工具提示,不管工具提示的属主窗口是否是处于活动状态。没有这个风格,则只有当工具的属主窗口是活动的时候才会显示工具提示控件,否则不显示;TTS_NOPREFIX这个风格禁止系统将 & 字符从一个字符串中去掉。如果一个工具提示控件没有 TTS_NOPREFIX 风格,则系统自动去掉 & 字符,让应用程序用同一个字符串作为菜单项和工具提示控件中的文本

4 调用AddTool向工具提示添加注册,这样当光标移动到工具上才能显示信息(如上一步代码)

            
m_pToolTipCtrl.AddTool(GetDlgItem(IDOK),_T("确定按钮,点击关闭对话框"));

5 右键单击类CToolTipsDlg 添加虚函数PreTranslateMessage
    BOOL CToolTipsDlg::PreTranslateMessage(MSG* pMsg)

   {

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

      if(pMsg->message== WM_LBUTTONDOWN ||pMsg->message== WM_LBUTTONUP ||pMsg->message== WM_MOUSEMOVE)
           m_pToolTipCtrl.RelayEvent(pMsg);  

     return CDialog::PreTranslateMessage(pMsg);

   }

 

抱歉!评论已关闭.