下面是在一般程序窗体里CToolTipCtrl应用的步骤:1.添加CToolTipCtrl成员变量 m_tt。 
    2.在父窗口中调用EnableToolTips(TRUE); 
    3.在窗口的OnCreate(或者其他适当的位置)中向ToolTip中添加需要显示Tip的子窗口,并同时指定相应的显示字串CToolTipCtrl::AddTool(pWnd,"string to display")。 
    4.重载父窗口的 BOOL PreTranslateMessage(MSG* pMsg) ,在函数中调用 m_tt.RelayEvent(pMsg)。这个没有疑问,我的问题的是:我想在用VC做的ActiveX控件中的窗体里用CToolTipCtrl提示一些信息(比如窗体的按钮上提示一句话),按上面的步骤操作,可是就是出不来提示呀,为什么?

解决方案 »

  1.   

    这样不行的。需要Hook实现 参考
      

  2.   

    g_hHook = SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,NULL,GetCurrentThreadId()); 楼上的,这句不行呀,提示没有定义g_hHook,我定义成为句柄时,又出现如下错误提示:D:\VCProgram\activex11\MyForm.cpp(102) : error C2664: 'SetWindowsHookExA' : cannot convert parameter 2 from 'long (int,unsigned int,long)' to 'long (__stdcall *)(int,unsigned int,long)'
      

  3.   

       CToolTipCtrl在控件和对话框中的使用区别大着呢!
        你去看下我的博客,里面讲得很详细!
        http://blog.163.com/dilo_free/blog/static/194657152201261755211767/