1

我有一个基类的层次结构B,几个派生DB.

有一个protected member 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)

... 等等。

可能吗?

4

1 回答 1

1

如果我理解正确,您是否考虑过使用ON_NOTIFY_RANGE

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

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

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

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

于 2017-11-07T16:58:41.423 回答