我的应用程序是 c++,是 MFC 和 ATL 的组合。我在这里使用的部分是 MFC。
我的一个对话框中有一个自定义列表控件类,它继承自 CListCtrl。
我正在尝试为 LVN_ITEMCHANGED 消息添加一个处理程序,以便我可以更新对话框表单的其余部分,这取决于列表的内容。更具体地说,每个列表项都有一个复选框字段,我需要检测它何时更改。
问题是,我的列表没有发送消息。
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST_OUTPUT_CMDS, OnLvnItemchangedListOutputCmds)
这是我的消息映射,它工作得很好,我通过简单地更改消息检测到其他消息,如 LVN_ITEMCHANGING、NM_CLICK 和 NM_RELEASEDCAPTURE。
因此,我的猜测是 listctrl 自定义类以某种方式无法正确发布消息。
这个问题可以通过多种方式回答:
1.如何将 LVN_ITEMCHANGED 消息从子列表发布到其父列表(对话框)?
2.我是否捕捉到了正确的信息?我尝试过的大多数都过早地触发了更新(即在更新列表中的数据之前)当我这样做时,对话框会根据列表的先前状态刷新。
3.还有什么我不应该做的事情吗?我问这个只是为了让它开放。