代码如下:
在对话框类声明变量:
         CButtonST m_Left
然后在OnInitDialog中初始化:
m_Left.SubclassDlgItem(IDC_GOTOLEFT,this);//子类化
m_Left.SetIcon(IDI_LEFT,(int)BTNST_AUTO_GRAY);//添加图标,鼠标移到按钮上显示正常颜色,否则为灰
         m_Left.SetTooltipText(_T("添加到左侧列表框"));//按钮提示
m_Left.DrawTransparent(TRUE);//按钮透明现在问题是除了SetTooltipText以外其他功能都实现了,但SetTooltipText功能却无效,运行后看不到按钮提示。请教用过的高手这是什么问题?PS: 我用的不是CDialog类,而是CBCGPDialog类,难道会有影响?

解决方案 »

  1.   

    CDialog是没有问题的, CBCGPDialog应该也没有问题,
    你只留m_Left.SetTooltipText(_T("添加到左侧列表框"));//按钮提示 
    试试
      

  2.   

    把之前的代码都注掉,直接用最原始的方法,还是不出现ToolTips,代码如下:
    CToolTipCtrl m_tLeft;
         
    EnableToolTips(TRUE); 
    m_tLeft.Create(this);
    m_tLeft.Activate(TRUE);
        m_tLeft.AddTool(GetDlgItem(IDC_GOTOLEFT),"这是一个TMD按钮");
      

  3.   

    自己顶上去啊,现在的问题不是CButtonST这个类了,我用任何办法在按钮上加提示都不显示。我的工程是DLL,里面有个Dialog,按钮都是已经拖出来的。难道是和调用我的主窗口有关。。?
      

  4.   

    你既然使用了BCG库,不如把CButtonST也换成CBCGPButton
      

  5.   

    用了,变量CBCGPButton m_left:
    代码改成: 
    m_Left.SubclassDlgItem(IDC_GOTOLEFT,this);//子类化
    m_Left.SetTooltip(_T("Ahh!"));
    还不行现在问题已经不是什么方法能实现Tooltip了,因为以上几种方法我在exe对话框工程里实验都行,但同样代码放在我DLL的对话框里就不好使。求救啊急急急,没人碰到过这种情况吗????
      

  6.   

    你是否使用了AFX_MANAGE_STATE(AfxGetStaticModuleState( ))来切换模块状态?
    我试了一下,DLL中的Dialog在DoModal时如果切换了当前模块状态,则Tooltip都显示不出来。
      

  7.   


    Invalidate();

    m_Left.SetTooltipText(_T("添加到左侧列表框"));//按钮提示 
      

  8.   

    这个问题我以前遇到过,是因为系统对Dll中的资源找不到句柄,所以对于dll中的资源来说,根本无法响应pretranslatemessage 函数 ,所以tooltips显示不出来。有两个办法解决:1 消息钩子 2 dll 导出函数,你在网上搜一下,有具体的实现