在我的对话框 WM_INITDIALOG 处理程序中,我将LVS_EX_INFOTIP | LVS_EX_LABELTIP
样式设置为窗口,如下所示:
ListView_SetExtendedListViewStyle(GetDlgItem(IDC_MAIN_LIST), LVS_EX_INFOTIP | LVS_EX_LABELTIP);
对话框的消息映射定义包含以下内容:
BEGIN_MSG_MAP(MyDlg)
NOTIFY_HANDLER(IDC_MAIN_LIST, LVN_GETINFOTIP, OnMainListViewGetInfoTip)
....
REFLECT_NOTIFICATIONS()
END_MSG_MAP()
哪里OnMainListViewGetInfoTip
是:
LRESULT OnMainListViewGetInfoTip(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
{
CString tempStr = L"tooltip message";
LPNMLVGETINFOTIP pGetInfoTip = (LPNMLVGETINFOTIP)pnmh;
if (pGetInfoTip != NULL)
{
pGetInfoTip->pszText = tempStr.GetBuffer();
}
return S_OK;
}
我根本没有收到 LVN_GETINFOTIP 通知。另外,我不知道从 pnmh 到 pGetInfoTip 的转换是否正确,并且 MSG_LVN_GETINFOTIP 没有被 VS 识别。