基于类层次结构在消息映射上提取ID

时间:2017-11-07 11:06:53

标签: oop visual-c++ mfc message-map

我有一个基础B的类的层次结构,来自D的几个派生B

有一个受保护的成员m_treeID,它是内部每棵树的ID。

我希望在基类中填充消息映射,如

ON_NOTIFY(NM_CLICK, m_treeID, OnNMClickTree)

而不是每个D去做

ON_NOTIFY(NM_CLICK, TREE_A, OnNMClickTree)
ON_NOTIFY(NM_CLICK, TREE_B, OnNMClickTree)

......等等。

有可能吗?

1 个答案:

答案 0 :(得分:1)

如果我理解你,你看过使用ON_NOTIFY_RANGE吗?

  

如果您需要为一组控件处理相同的 WM_NOTIFY 消息,则可以使用 ON_NOTIFY_RANGE 而不是ON_NOTIFY。例如,您可能有一组按钮,您希望对某个通知消息执行相同的操作。

     

当您使用 ON_NOTIFY_RANGE 时,您可以通过指定范围的开始和结束子标识符来指定要处理通知消息的连续子标识符范围。

     

ClassWizard不处理 ON_NOTIFY_RANGE ;要使用它,您需要自己编辑您的消息地图。

它解释了如何在文章中使用它。只要TREE_ATREE_B等按顺序编号,那么您可以为所有这些编号设置一个消息处理程序。