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

时间:2017-05-16 15:03:02

标签: 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"工具提示屏蔽"Child"工具提示的问题。

我认为事件只传递给父窗口,但我不确定如何解决这个问题。

PreTranslateMessage函数中放置一个断点是没用的,因为它会在应用程序收到的每个事件上显着停止。

请问您如何调查此问题?

谢谢。

1 个答案:

答案 0 :(得分:3)

找到答案:

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

例如:

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