CListCtrl:在 HeaderControl 上获取 DblClick
Posted
技术标签:
【中文标题】CListCtrl:在 HeaderControl 上获取 DblClick【英文标题】:CListCtrl: Get DblClick on HeaderControl 【发布时间】:2019-03-12 13:56:03 【问题描述】:好的,一直是我在 MFC 中写东西,所以请耐心等待。我有一个从 CListCtrl 派生的类“CMyListCtrl”,只想知道是否在标题上双击(左)列标题。
所以我添加到我的 MESSAGE_MAP:
ON_NOTIFY(HDN_ITEMDBLCLICK, 0, OnDblClickHeader)
和 CMyListCltr 的一个函数:
void CMyListCtrl::OnDblClickHeader(NMHDR* pNMHDR, LRESULT* pResult)
HD_NOTIFY *phdn = (HD_NOTIFY *)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
但是:永远不会调用 OnDblClickHeader。我试过了:
ON_NOTIFY
ON_NOTIFY_EX
ON_NOTIFY_RANGE (0-0xffff)
ON_NOTIFY_REFLECT
ON_NOTIFY_REFLECT_EX
... 但是:永远不会调用 OnDblClickHeader。
可能出了什么问题?标题是否必须获得特殊样式?
【问题讨论】:
【参考方案1】:根据documentation,您必须确保您的控件遵循以下语句:Only header controls that are set to the HDS_BUTTONS style send this notification code.
【讨论】:
谢谢。但是如何在创建 CListCtrl 时添加 HDS_BUTTONS 样式?我正在使用 PreSubclassWindow 从 CListCtrl 添加和删除样式,bot 如何/在哪里可以更改标题控件的样式? 在创建标题控件时设置初始样式。要在创建控件后检索和更改样式,请使用 GetWindowLong 和 SetWindowLong 函数。全部来自我提供的文档。以上是关于CListCtrl:在 HeaderControl 上获取 DblClick的主要内容,如果未能解决你的问题,请参考以下文章