VC6如何设置编辑框中字体的颜色?

c99c88 2010-01-18 11:10:20
有一基本对话框窗体,在上面放置一个Edit box,
怎样搞能使编辑框中的文本的字体显示为红色或其他颜色。

唉,在网上看了一大堆,不知道他们在说什么?简单点啊,能有那么复杂吗?
...全文
478 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Blinwal 2011-07-19
  • 打赏
  • 举报
回复
我也成功了~~感激啊
liumenghappy 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 c99c88 的回复:]
好了,谢谢大家!
[/Quote]
搞定了啊,恭喜
c99c88 2010-01-18
  • 打赏
  • 举报
回复
好了,谢谢大家!
c99c88 2010-01-18
  • 打赏
  • 举报
回复
我重建一个基本对话框,按你们说的,成功了。
可是我原来那个,就是搞不出,我那个建的是“单文档文件”,不是“基本对话框”

唉,问题啊……
liumenghappy 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 c99c88 的回复:]
你的是“HBRUSHCISADlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) ”
我的是“HBRUSHCDialg::OnCtlColor(CDC* pDC, CWnd* p”

问题是不是在这啊?怎么高的啊
[/Quote]
CISADlg是工程中对话框名,你的对话框名是CDialg,不会吧
c99c88 2010-01-18
  • 打赏
  • 举报
回复
你的是“HBRUSH CISADlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) ”
我的是“HBRUSH CDialg::OnCtlColor(CDC* pDC, CWnd* p”

问题是不是在这啊?怎么高的啊
c99c88 2010-01-18
  • 打赏
  • 举报
回复
还是黑的,没变化。代码如下:
HBRUSH CDialg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here
if(((CEdit*)GetDlgItem(IDC_EDIT1))->m_hWnd==pWnd->m_hWnd)
{
pDC->SetTextColor(RGB(255,225,0));
}
c99c88 2010-01-18
  • 打赏
  • 举报
回复
找到了,把代码加进去了,但是还是黑色啊,代码下如下:
HBRUSH CDialg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here
if(((CEdit*)GetDlgItem(IDC_EDIT1))->m_hWnd==pWnd->m_hWnd)
{
pDC->SetTextColor(RGB(255,0,0));
}
liumenghappy 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 c99c88 的回复:]
“重载OnCtlColor”,怎么重载呢?
下面那些代码我又该写到那个文件呢?(文件也太多了!!!)
[/Quote]
在classwizard中,让C***Dlg响应WM_CTLCOLOR,然后添加函数并编辑代码,VC会自动为C***Dlg添加OnCtlColor,在这个函数里写就行了
c99c88 2010-01-18
  • 打赏
  • 举报
回复
找不到C***Dlg.cpp形式的文件
是不是还要建类 成员变量什么的啊?
c99c88 2010-01-18
  • 打赏
  • 举报
回复
“重载OnCtlColor”,怎么重载呢?
下面那些代码我又该写到那个文件呢?(文件也太多了!!!)
liumenghappy 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 c99c88 的回复:]
(kone123) ,请问我该写在哪个文件里呢?怎么通不过呢?
[/Quote]
在C***Dlg.cpp的C***Dlg::OnCtlColor写,加上:
if(((CEdit*)GetDlgItem(编辑框ID))->m_hWnd==pWnd->m_hWnd)
{
pDC->SetTextColor(RGB(255,0,0));
}
就行了
c99c88 2010-01-18
  • 打赏
  • 举报
回复
(kone123) ,请问我该写在哪个文件里呢?怎么通不过呢?
liumenghappy 2010-01-18
  • 打赏
  • 举报
回复
重载OnCtlColor,可以改变编辑框字体的颜色,下面代码是把编辑框IDC_EDIT字体颜色改为红色:
HBRUSH CISADlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(((CEdit*)GetDlgItem(IDC_EDIT))->m_hWnd==pWnd->m_hWnd)
{
pDC->SetTextColor(RGB(255,0,0));
}

return hbr;
}
kone123 2010-01-18
  • 打赏
  • 举报
回复
CClientDC dc(this);
dc.SetTextColor(RGB(255,0,0)); //红色
dc.SetTextColor(RGB(255,255,0)); //黄色
其它颜色只需要改变RGB的值就可以了
c99c88 2010-01-18
  • 打赏
  • 举报
回复
4。背景及文本颜色

定义一成员变量CBrush m_brush; 谁的成员变量?

OnInitDialog()中进行初始化工作m_brush.CreateSolidBrush(RGB(255,0,0));我怎么找不到这个函数?

然后在OnCtrlColor中

HBRUSH CAsdfaaaaaaaaaDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor==CTLCOLOR_EDIT &&

pWnd->GetDlgCtrlID()==IDC_EDIT1)//注意此处的(pWnd->),否则没效果
{
pDC->SetTextColor(RGB(255,0,0));
pDC->SetBkColor(RGB(255,255,0));//设置文本背景色
pDC->SetBkMode(TRANSPARENT);//设置背景透明
hbr = (HBRUSH)m_brush;
}

return hbr;
}

c99c88 2010-01-18
  • 打赏
  • 举报
回复
写哪,怎样写,你们等于没说……
vann1982 2010-01-18
  • 打赏
  • 举报
回复
SetTextColor
c99c88 2010-01-18
  • 打赏
  • 举报
回复
我是个新手,你这样说我是听不懂的……
请说的具体点啊,我要是能听懂你说的“CFont",我想就不在这问了……

理解啊……
healer_kx 2010-01-18
  • 打赏
  • 举报
回复
CFont

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧