• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

如何改变静态文本框上某一行的文字的颜色?

yux007 2004-07-25 01:32:09
比如:
123456
ASDFG
234566
要改变ASDFG的颜色,如何实现?
...全文
188 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shadowWind 2005-01-24
mark
回复
flyidd 2004-07-25
呵呵,你可以把一个DC分成多个DC。 那种可以支持多种字体颜色的编辑软件都是这么做的。
回复
bluestone 2004-07-25
突然间想到一个办法,你可以试试看

写一个CStatic的派生类CMyStatic, 在对话框中声明CMyStatic成员,然后在initdialog中创建,创建的时候指定显示的字符串。

然后写一个CMyStatic::OnPaint函数隐藏父类的OnPaint,在这个函数中,可以用GetWindowText取得当前设定的固定字符串,然后使用CDC将这个字符串画出来,喜欢画什么颜色都行,画几行也无所谓,你看行不行呢:)
回复
bluestone 2004-07-25
不会,顶一下
回复
yux007 2004-07-25
to BLsoft(網龍ζ龍活):
我晕!我问的是如何某一行变色
to csdn_cht(欣欣兽) :
可以,但是我想只用一个
to enlith(野虾):
能给个例子吗?
回复
enlith 2004-07-25
保存旧画刷
设置画刷
replace要改变颜色的文本
回复
名牌大灰狼 2004-07-25
晕~ 我只是让你看一下变色的例子
回复
csdn_cht 2004-07-25
用三个CStatic不行吗?
回复
yux007 2004-07-25
这不是第一行和第二行颜色全变了吗
回复
名牌大灰狼 2004-07-25
① 先创建一个基于对话框的工程,命名为test,然后在对话框上加入一个ListBox控件。

② 在testDlg.h中加入一个成员变量:HBRUSH m_hbrush;

③ 在OnInitDialog()中,加入m_hbrush=CreateSolidBrush(RGB(0,0,0);此处设置的RGB值可以改变ListBox的背景色。为了观看ListBox中字的颜色变化,我们给ListBox加入几个字:利用Class Wizard给ListBox加入一个Control类型的成员变量m_ctrlListBox,然后在OnInitDialog()加入如下所示的代码:

m_ctrlListBox.AddString("第一行");
m_ctrlListBox.AddString("第二行");

④ 点击Class Wizard,给testDlg加入WM_CTLCOLOR事件,单击Edit Code按钮,然后把改函数的内容替换为如下代码:

if(nCtlColor== CTLCOLOR_LISTBOX)
{
pDC->SetBkMode(TRANSPARENT);
//此处设置字体的颜色
pDC->SetTextColor(RGB(255,255,255));

return m_hbrush;
}
else
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-07-25 01:32
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……