想实现在鼠标位于按钮或工具栏按钮之上时出现一个提示,我知道类CToolTipCtrl负责提示的,但是怎么实现呢,试了但是还是没有搞定,请各位大侠指点,谢了,分数视情况还会再加的

解决方案 »

  1.   

    可以试下:
    CWndYour::OnCreate(....)
    {
    ...
    EnableToolTips(TRUE);
    m_tt.Create(this);
    m_tt.Activate(TRUE);
    CWnd* pW=GetDlgItem(IDC_CHECK1);
    m_tt.AddTool(pW,"Check1");
    }
    BOOL CWndYour::PreTranslateMessage(MSG* pMsg)
    {
    {
    m_tt.RelayEvent(pMsg);
    }
    return CParentClass::PreTranslateMessage(pMsg);
    }
      

  2.   

    我产生的是一个对话框程序,类是CSMSEditorDlg。为了实现提示语我产生了一个新类CMyToolTipCtrl : public CToolTipCtrl,就是简单的继承了一下,对这个新类没有做任何修改,然后在我的对话框类CSMSEditorDlg中声明CMyToolTipCtrl m_toolTip; 这样一声明以后原来可以运行的程序不能运行了,编译没有问题,各位,哪里出问题了?
      

  3.   

    上边的问题解决了,小科说的不错,我已经实现了提示功能,不过还有个问题,这样的做法对按钮可以,对工具栏不行,比如:m_tooltip.AddTool(GetDlgItem(ID_BTN_SAVE),"Save"),ID_BTN_SAVE是工具栏的保存按钮的ID,结果程序运行出错,程序执行到:
    BOOL CToolTipCtrl::AddTool(CWnd* pWnd, LPCTSTR lpszText, LPCRECT lpRectTool,
    UINT nIDTool)
    {
    ASSERT(::IsWindow(m_hWnd));
    ASSERT(pWnd != NULL);
    显示pWnd 指针为NULL,如何解决?