设置从CEditView继承的视图类的字体颜色,背景色

本文介绍了如何通过MFC的消息反射机制创建一个名为CYellowEdit的自定义控件,该控件继承自CEdit并允许在黄色背景中显示黑色文字。通过处理WM_CTLCOLOR反射消息,实现了控件自身的颜色定制,提高了代码的重用性。
摘要由CSDN通过智能技术生成
        通过向父窗口(在这里父窗口是对话框)发送WM_CTLCOLOR消息,处理这些消息的代码都将在父窗口类中来实现,这显然不利于重用。
更符合面向对象的方法应该是让控件可以处理自己的背景颜色,这样将有利于代码重用。
微软已经认识到这点,从MFC4.0开始提供了一种称为消息反射(Message   Reflection)的新机制。
消息反射允许控件自己处理类似WM_CTLCOLOR这样的通知消息(在VC的ClassWizard里显示为=WM_CTLCOLOR)。但MFC为了相后兼容,保留了旧的消息机制,允许这些通知消息能被父窗口处理(虽然后者是不合逻辑的)。
反射消息的消息映射宏与通常的消息映射宏有点微小的区别:它在其常规名字后附加了   _REFLECT   表示。
例如,用于=WM_CTLCOLOR   通知的宏是   ON_WM_CTLCOLOR_REFLECT。

下面举一个通过处理反射消息创建可重用控件的例子:
Handling   Reflected   Messages:   An   Example   of   a   Reusable   control(根据MSDN   Library   -   July2000   整理)

这个例子创建了一个可重用的CYellowEdit控件。这一控件继承了常规编辑控件的功能,不同就是它在黄色背景中显示黑字。(当然,还可以添加其它功能。)

步骤如下:

1.在一个已存在的应用程序添加一个对话框。

2.使用   ClassWizard   创建一个基于   CE
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值