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的主要内容,如果未能解决你的问题,请参考以下文章

默认 CListCtrl 数据即将排序

是否可以在没有 MFC 的情况下使用 CListCtrl

如何在 MFC 中将图像添加到 CListCtrl

clistctrl怎么用,有例子吗?

单击或选择 Clistctrl 子项(报告视图)

CListCtrl CScrollBar