在MFC的消息反射中,父窗口会给子窗口一个自身处理消息的机会,将消息反射给子窗口处理,如果子窗口处理了该消息,父窗口会忽略对该消息的处理,但是我们可以利用ON_NOTIFY_REFLECT_EX 或者 ON_CONTROL_REFLECT_EX,让子窗口和父窗口都处理该消息。
例如,我们想让子窗口和父窗口同时响应一个CButton的单击事件,可以通过如下步骤:
1、在子窗口类的消息映射中添加ON_CONTROL_REFLECT_EX( BN_CLICKED,memberFxn ),其中函数memberFxn 的原型为: afx_msg BOOL memberFxn ( )。 在这里,只有函数memberFxn返回值为FALSE时,子窗口和父窗口才会都处理该消息。
2、在父窗口中添加ON_COMMAND宏,实现父窗口对消息的响应。
本文介绍了MFC中消息反射机制的应用,通过具体实例展示了如何让子窗口和父窗口同时响应CButton的单击事件。文章详细解释了使用ON_CONTROL_REFLECT_EX宏设置消息处理函数的方法,并指出该函数返回值为FALSE时,子窗口与父窗口才能共同处理同一消息。
647





