使用CColorListBox 实现文本改变颜色

在MFC中,如果想要在CListBox控件中显示彩色文本,可以使用CColorListBox类。该类允许添加带有颜色的字符串。实现步骤包括:将CListBox替换为CColorListBox,设置控件属性如Owner Draw为Variable,Selction为Single,Use TabStops为False,Has Strings为True,并在DoDataExchange()中关联控件。同时,需要重载DrawItem和MeasureItem函数以确保正确绘制。AddString和InsertString函数用于添加或插入彩色文本,但注意在LBS_SORT风格的列表框中避免使用InsertString以保持排序顺序。
摘要由CSDN通过智能技术生成

MFC提供的CListBox类只支持黑色文本,如果想在列表框中显示彩色文本,如何实现?从CListBox类派生而得的CColorListBox类具有此功能。通过调用该类的AddString()和InsertString()函数可以向列表框中添加彩色文本选项。

过程:

1)使用别人已经写好的类,CColorListBox 完成。其实过程很简单,需要注意一些细节:

   首先,在新建的项目中加入这两个类;

   然后,  在vs对话框中添加CListBox m_list变量,然后将CListBox改为CColorListBox,这样就可以在点击BUTTON响应事件中,添加代码

   m_list.AddString(_T("nihao"),RGB(255,0,0));

  只是这样,结果并不会想想象的出现文本颜色的变化。

  需要做的是:修改m_list的属性:

           *)Owner Draw  为Variable 

           *)Selction 为Single

           *)use TabStops 为False

           *)Has Strings 为True 这个是我在运行是,一直没有找到的出问题的地方

开始的时候设置的为False 但是怎么都不行,就单步调试,跟进去看代码,存入的是这个值,怎么都不行,再看它的重绘,取出的值就是不对,就像可能是list的属性设置不正确,由于属性不正确,它不去取你设置的值,所以就看vc6.0的代码,选中了又字符串&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值