winapi - 对话框显示工具提示,但子窗口不显示工具提示

标签 winapi mfc tooltip

我正在开发一个 MFC 项目(我知道这是旧技术)。

在我的对话框类(派生自CDialog)中,我有:

CToolTipCtrl m_cToolTipCtrl;
CWnd         m_cImageWindow;

在类OnInitDialog函数中我所做的:

m_cToolTipCtrl.Create(this);
m_cImageWindow.CreateEx(...);
m_cToolTipCtrl.AddTool(this,_T("Parent"));
m_cToolTipCtrl.AddTool(&m_cImageWindow,_T("Child"));

在类 PreTranslateMessage 函数中,我执行以下操作:

m_cToolTipCtrl.RelayEvent(pMsg);

当我运行项目时,每当我将鼠标悬停在父窗口中时,都会显示“Parent”工具提示,但每当我将鼠标悬停在父窗口中时,不会显示“Child”工具提示在子窗口内。

我最初在没有 "Parent" 工具提示的情况下尝试过此操作,但它不起作用,因此显然不是 "Parent" 工具提示掩盖了“子项” 工具提示。

我认为事件仅转发到父窗口,但我不太确定如何解决这个问题。

PreTranslateMessage 函数中放置断点是没有用的,因为它会在应用程序收到的每个事件上明显停止。我该如何调查这个问题?

最佳答案

找到答案:

只需在创建子窗口样式时添加 SS_NOTIFY 标志即可。

例如:

m_cImageWindow.CreateEx(0,WC_STATIC,NULL,WS_CHILD|SS_NOTIFY,{0,0,0,0},this,0);

关于winapi - 对话框显示工具提示,但子窗口不显示工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44005091/

相关文章:

delphi - 如何使用GetThemeStream保存Windows主题部分? (DWMWINDOW除外)

sql-server - "String data, right truncation"select 语句上的警告

jquery - 如何在 jquery UI 工具提示中添加右(水平)箭头?

java - 移动鼠标时出现消息上的工具提示

c++ - 如何更改下一个字符在 MFC 的编辑控件中的位置?

html - 动态定位CSS工具提示

c++ - 写入用户文档文件夹 C++

c++ - 遗留 C++ 代码在 Windows 10 下不显示位图

c# - 如何在 C# 中关闭特定的文件资源管理器?

c++ - 如何将虚拟键码转换为字符码?