将一个消息处理过程绑定到多个控件

在VC中,我们使用ClassWizard可以创建指定控件的消息处理函数,但是如果界面上有多个控件要处理时,需要绑定多个消息处理过程,如果消息处理过程完全一下的情况下,会造成大量的代码冗余,幸好VC中提供了基于控件ID范围设定的消息宏,可以将一个消息处理过程绑定到多个控件上,比如ON_CONTROL_RANGE。vc中只定义了一些常用的基于范围的消息绑定宏,特殊的消息范围宏,我们可以自定义来实现,下例就是一个将EN_SETFOCUS消息处理函数绑定到多个控件的宏。

#define ON_EN_SETFOCUS_RANGE(id, idlast, memberFxn) ON_CONTROL_RANGE(EN_SETFOCUS, id, idlast, memberFxn)

使用这种方法中唯一有一点不方便的就是只能手工创建消息映射,不能使用Class Wizard来实现