我有一个类的层次结构,一个基本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)
。等等。
可能吗?
如果我理解正确,您是否考虑过使用ON_NOTIFY_RANGE?
如果需要为一组控件处理相同的WM_NOTIFY消息,则可以使用 ON_NOTIFY_RANGE 而不是 ON_NOTIFY。例如,您可能有一组按钮,您希望对某个通知消息执行相同的操作。
使用 ON_NOTIFY_RANGE 时,可以通过指定范围的开始和结束子标识符来指定要为其处理通知消息的连续子标识符范围。
ClassWizard 不处理ON_NOTIFY_RANGE;要使用它,您需要自己编辑消息映射。
它解释了如何在文章中使用它。只要TREE_A
、TREE_B
等是按顺序编号的,那么您可以对所有它们使用一个消息处理程序。