我正在编写一个 MFC 应用程序,其中我在报表视图中有一个带有多个 CListCtrls 的对话框。我希望其中一个是可排序的。所以我处理了 HDM_ITEMCLICK 事件,一切正常……除了如果我单击另一个 CListCtrl 的标题,它确实对 OTHER CListCtrl 进行排序,这看起来有点愚蠢。
这显然是由于标头的 ID 为 0,这使得消息映射中的条目如下所示:
ON_NOTIFY(HDN_ITEMCLICK, 0, &Ccreationprogramme::OnHdnItemclickList5)
但是由于所有标题的 id 都为零,显然我的对话框的每个标题都会发送消息。
有没有解决这个问题的简单方法?
编辑:也许我不清楚,但我确实检查了 NMHDR 结构内的值。HwndFrom 指针根据单击的标题而有所不同,这对我没有多大帮助,因为它的值在每个运行时明显不同。由于我上面解释的原因,idFrom 值为 0,因为这是每个标头的 id。谢谢
EDIT2:hwnd 指针值也不对应于 CListCtrl,可能是因为它完全来自不同的对象。