在上一篇中已经提到:
在老版本的MFC中,对一些消息采用了虚函数机制,例如:WM_DRAWITEM,这样子控件就有机会控制自己的动作,代码的可重用性有了一定的提高,但是这还没有达到大部分人的要求,所以在高版本的MFC中,提出了一种更方便的机制:消息反射。通过消息反射机制,子控件窗口便能够自行处理与自身相关的一些消息,增强了封装性,同时也提高了子控件窗口类的可重用性。
通过使用消息反射宏,在调用ReflectChildNotify时,会对不同的消息有不同的处理。
例如,对于WM_CTLCOLOR,如果在父窗口中已经实现,又在子控件中实现,那么只会响应父窗口的。
而对于WM_NOTIFY,则恰恰相反,子窗口会首先处理消息,切记切记。
评论