怎麼不能改變顏色??((CEdit *)GetDlgItem(IDC_EDIT_INMIN1))->GetDC()->SetBkColor(RGB(255,0,0))

laker_tmj 2004-03-22 05:35:15
void CADEFVIEW::OnCheckIn1()
{

((CEdit *)GetDlgItem(IDC_EDIT_INMIN1))->GetDC()->SetBkColor(RGB(255,0,0));

}

這樣寫怎麼改變不了 CEdit 控件的底色???
...全文
169 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
laker_tmj 2004-03-22
  • 打赏
  • 举报
回复
我是要 CEdit 控件的可輸入部分的背景颜色是加外一種颜色,不管它在什麼時候,

我不想作一個類,有沒有別的好方法!!!
StarNCraft 2004-03-22
  • 打赏
  • 举报
回复
即然要重载,就得从作一个类,你是要修改C++标准娄库吧?
laker_tmj 2004-03-22
  • 打赏
  • 举报
回复
to all

to kevin_wang(kevin神)

我要怎麼樣才能重载CEdit的OnEraseBackground()函数
我不想做一個類,能不能在
BOOL CADEFVIEW::PreTranslateMessage(MSG* pMsg)
中做這個動作 ???
laker_tmj 2004-03-22
  • 打赏
  • 举报
回复
to: sdwalnut(核桃)
你的方法在控件有輸入時沒有想要的效果!!!
核桃2000 2004-03-22
  • 打赏
  • 举报
回复

我是用下面的代码来实现的
。。。
pwnd= GetDlgItem(IDC_STATIC_PULIC_6KV2);
PaintBlock(pwnd,clr,TRUE);
。。

void PaintWndBlock(CWnd * wnd,COLORREF color,BOOL bInvalid)
{
if(bInvalid)
{
wnd->InvalidateRect(NULL);
wnd->UpdateWindow();
}
CRect rect;
CPen pen;
CBrush brush;
CClientDC dc(wnd);

wnd->GetClientRect(&rect);
brush.CreateSolidBrush(color);
pen.CreatePen(PS_SOLID,0,RGB(0,0,0));
CPen *oldpen = dc.SelectObject(&pen);
CBrush * oldbrush = dc.SelectObject(&brush);
dc.Rectangle(&rect);
dc.SelectObject(oldpen);
dc.SelectObject(oldbrush);
if (!pen.DeleteObject())
{
TRACE("删除笔失败!");
}
if (!brush.DeleteObject())
{
TRACE("删除刷失败!");
}
}
同桌老王 2004-03-22
  • 打赏
  • 举报
回复
SetBkColor设置的是输入东西后,文本的背景。
要改变Edit的颜色需要响应WM_CTLCOLOR,并在其中做判断,如果是呢所需要的Edit就设置一个颜色。
或者: 重载CEdit的OnEraseBackground()函数。也可以。
远古猛犸象 2004-03-22
  • 打赏
  • 举报
回复
对,要实现这个功能还是得用WM_CTLCOLOR
laker_tmj 2004-03-22
  • 打赏
  • 举报
回复
我是要 CEdit 沒有輸入內容時控件的可輸入部分背的颜色
zhucde 2004-03-22
  • 打赏
  • 举报
回复
CEdit的颜色由WM_CTLCOLOR来重新绘制。
必须重载该消息来改变颜色

16,548

社区成员

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

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

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