C++ CTOLTIPTRL未显示
我已经创建了一个从CWnd派生的窗口。该窗口有一个图标和一个文本。 使用DrawIconEx()和dc.DrawText()方法,我在onPaint()方法中创建图标和文本。从技术上讲,我在这个窗口中没有任何控件(如CStatic、CButton等) 为了创建工具提示,我添加了以下逻辑 头文件:添加了成员变量C++ CTOLTIPTRL未显示,c++,visual-c++,mfc,C++,Visual C++,Mfc,我已经创建了一个从CWnd派生的窗口。该窗口有一个图标和一个文本。 使用DrawIconEx()和dc.DrawText()方法,我在onPaint()方法中创建图标和文本。从技术上讲,我在这个窗口中没有任何控件(如CStatic、CButton等) 为了创建工具提示,我添加了以下逻辑 头文件:添加了成员变量 CToolTipCtrl m_toolTipCtrl; 源文件:在OnCreate()方法中添加了以下内容 在PreTranslateMessage(MSG*pMsg)虚拟方法中添
CToolTipCtrl m_toolTipCtrl;
源文件:在OnCreate()方法中添加了以下内容
在PreTranslateMessage(MSG*pMsg)虚拟方法中添加了RelayEvent
m_ToolTictr.RelayEvent(pMsg)
问题:
当我将鼠标光标放置在此窗口上时,工具提示不显示。
我尝试的是:
我注意到工具提示已经创建,但当鼠标悬停在窗口上时,PreTranslateMessage()方法中的断点没有命中
注意:此窗口(A)是另一个窗口(B)的子窗口。B由CView导出
有人能告诉我这里出了什么问题吗
提前谢谢 通常创建工具提示控件,方法是将指针指向父窗口,并添加该窗口中的控件。这意味着传递给create的窗口指针和传递给AddTool的窗口指针通常不相同 您希望在窗口本身中创建工具提示控件,而不是控件 可以为矩形区域创建工具提示,并将整个窗口作为该区域(如果愿意,也可以仅作为窗口的一部分) 下面是一个如何在不使用MFC的情况下使用Windows API的示例: 我还没有在MFC中找到一个好的例子;我会尝试找到一个,如果我这样做了,我会更新这个。我不能自己测试它,因为我目前没有访问Visual Studio的权限(对不起!) 同时,也许上面的例子结合了 会有足够的信息让你弄明白 您可能还需要在窗口上调用SetToolTips,如中所示
您的视图中是否有其他地方可用的工具提示?如果没有,您可能需要调用EnableToolTips(true)。这可能有助于您将句柄传递给按钮,而不是
此
。例如m_toolTipCtrl.AddTool(ptrButton,_T(“text”))代码>
m_toolTipCtrl.Create(this)
m_toolTipCtrl.AddTool(this, _T("Warning Message Tool-Tip"));
m_toolTipCtrl.Activate(TRUE);