当鼠标悬停在 MFC C++ 中列表控件的列标题上时显示工具提示
Posted
技术标签:
【中文标题】当鼠标悬停在 MFC C++ 中列表控件的列标题上时显示工具提示【英文标题】:Display ToolTip when mouse hover on Column Header of List Control in MFC C++ 【发布时间】:2017-07-26 11:34:45 【问题描述】:我有一个场景,当我将鼠标悬停在 MFC C++ 中列表控件的列标题上时,我需要显示一个工具提示。
当我只将鼠标悬停在第 1 列和第 2 列时,我需要工具提示。
我使用了消息处理程序 OnNotify(),因此当我将鼠标悬停在 List 控件标头上时,调用将进入 OnNotify() 函数。现在如何只处理第 1 列和第 2 列。
有人可以提出更好的方法吗?
BOOL MyClass::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
//////////////////////////
...............
// How to handle here??
..............
////////////////////////
return true;
【问题讨论】:
请更改您的问题,以便我们了解 MyClass 是什么样的窗口类。 您可以直接使用 HDM_GETITEMRECT 或 CHeaderCtrl::GetItemRect 来确定鼠标光标(GetCursorPos)是否在我认为的特定列内。 【参考方案1】:我相信 lParam 是一个 NMHDR 结构
NMHDR nmh = (NMHDR&)lParam;
nmh.code; // What Event caused the Notify
nmh.hwndFrom; // What Window
nmh.idFrom; // Which Control
我认为您可以使用“idFrom”来确定哪个列生成了事件。
【讨论】:
【参考方案2】:也许my article in CodeGuru 会帮助你。这是我认为的 2005 年,但仍然有效。
【讨论】:
以上是关于当鼠标悬停在 MFC C++ 中列表控件的列标题上时显示工具提示的主要内容,如果未能解决你的问题,请参考以下文章