怎样调用颜色函数,以改变字体颜色????

zyqwk2003 2003-08-24 10:06:11
我在对话框中设置了一个编辑框和几个按钮,如何实现点击不同的按钮,编辑框中的字显示不同的颜色。我是初学者,请详细说明怎么调用?在哪调用?谢谢!
...全文
154 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouyong0371 2003-08-24
  • 打赏
  • 举报
回复
头文件:
COLORREF m_Color;
.cpp:

void CSetEditColorDlg::OnRed()
{
// TODO: Add your control notification handler code here
m_Color = RGB(255, 0, 0);
Invalidate();
}

void CSetEditColorDlg::OnGreen()
{
// TODO: Add your control notification handler code here
m_Color = RGB(0, 255, 0);
Invalidate();

}

void CSetEditColorDlg::OnBlue()
{
// TODO: Add your control notification handler code here
m_Color = RGB(0, 0, 255);
Invalidate();

}

HBRUSH CSetEditColorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here
if (nCtlColor == CTLCOLOR_EDIT)
SetTextColor(pDC->m_hDC, m_Color);

// TODO: Return a different brush if the default is not desired
return hbr;
}

最好在程序初始化时就给m_Color一个初值
fooxu 2003-08-24
  • 打赏
  • 举报
回复
message handle and evernts

里面的

WM_CTLCOLOR

yanzai8848 2003-08-24
  • 打赏
  • 举报
回复
OnCtlColor函数时Windows的基本消息WM_CTLCOLOR的消息响应虚函数,

请看此相关的MSDN帮助
CWnd::OnCtlColor

另外MSDN文档:
TN062: Message Reflection for Windows Controls
zyqwk2003 2003-08-24
  • 打赏
  • 举报
回复
是不是需要在哪定义flag
zyqwk2003 2003-08-24
  • 打赏
  • 举报
回复
HBRUSH CNetTopo::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
这是从哪来的
flinming 2003-08-24
  • 打赏
  • 举报
回复
你通过控制窗体的OnCtlColor事件,你点击按钮去控制flag的不同,从而控制edit的颜色
HBRUSH CNetTopo::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

if(nCtlColor==CTLCOLOR_EDIT )
{
switch(flag)
{
case 1:
pDC->SetBkColor(RGB(170,200,215));
break;
case 2:
pDC->SetBkColor(RGB(200,200,215));
break;
....
}

}

return hbr;
}
zhouyong0371 2003-08-24
  • 打赏
  • 举报
回复
不懂你的意思
zyqwk2003 2003-08-24
  • 打赏
  • 举报
回复
CtlColor有这个控件吗?

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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