按钮怎么改变背景颜色

yumeinunu123456 2007-08-08 10:35:50
响应这个函数:
HBRUSH CMouseTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: 在此更改 DC 的任何属性

// TODO: 如果默认的不是所需画笔,则返回另一个画笔
CBrush m_Brush;
m_Brush.CreateSolidBrush(RGB(255,0,0));
//if (pWnd->GetDlgItem(IDC_BUTTON1))
if (pWnd->GetDlgCtrlID()==IDC_BUTTON1)
{
pDC->SetTextColor(RGB(0,255,0));
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)m_Brush;
}
return hbr;
}

怎么没反应???
请各位大侠指教!谢谢!
...全文
573 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yumeinunu123456 2007-08-15
  • 打赏
  • 举报
回复
ClrButton还是比较简单的,谢各位啦!
appleboyecho 2007-08-10
  • 打赏
  • 举报
回复
要用自绘的方法。
xiaoQ008 2007-08-10
  • 打赏
  • 举报
回复
楼上对,需要自己绘制按纽!

WM_CTLCOLOR时间对一半的静态,滚动条,对话框可以改背景颜色,但对按钮却不行!~
Yao-debo 2007-08-10
  • 打赏
  • 举报
回复
ps:按钮是不能通过这种方法来改变背景色的,可以用位图按纽或者自绘
----------------------------------------------------------
按钮控件和static不一样: static是可以通过这种方式改背景的, 因为默认只有一种状态.
但是按钮就不一样了, 他有4种状态, 所以他的背景处理不是在WM_CTLCOLOR事件里. 而是
重写DrawItem.... 在这个函数里绘制几种不同状态下的按钮样式 . 不光是背景,还有形状.
ioleon13 2007-08-10
  • 打赏
  • 举报
回复
CButtonST的类
zhaoyangokok 2007-08-09
  • 打赏
  • 举报
回复
可以考虑自己画一个,不过比较麻烦
xiaoQ008 2007-08-09
  • 打赏
  • 举报
回复
自绘!
楼主,
shell_shell 2007-08-09
  • 打赏
  • 举报
回复
有一个ClrButton类,挺好用
你在网上搜以下
BSRONG 2007-08-09
  • 打赏
  • 举报
回复
"是不是一定要派生一个以CButton的按钮类呀?然后在这个类里面重载DrawItem?
或者最简单的办法可以用什么方法?"
是不行的,其它控件都可以,按钮比较特殊,一般用位图按钮来画背景
yumeinunu123456 2007-08-09
  • 打赏
  • 举报
回复
谢谢各位,我现在手头上有个CButtonST的类,我想用这个应该可以了,只不过在想我只想完成一个简单的按钮背景色的改变,不想那么麻烦,既然这样的话,那只好用这个类了!
abzhang2 2007-08-09
  • 打赏
  • 举报
回复
网上有很多那种自绘按钮的源代码,如果你觉得不好,可以再修改
自己一点一点的写,很麻烦。
你可以搜索下,这个上面有很多,
http://www.codeproject.com 提供这个,比较好,
liuxiuk 2007-08-09
  • 打赏
  • 举报
回复
派生一个以CButton的按钮类呀?然后在这个类里面重载DrawItem
----
属性改成 drawer //好象是,记大清了

//-------------
或者用BitMap
yumeinunu123456 2007-08-09
  • 打赏
  • 举报
回复
是不是一定要派生一个以CButton的按钮类呀?然后在这个类里面重载DrawItem?
或者最简单的办法可以用什么方法?
凤矶 2007-08-09
  • 打赏
  • 举报
回复
添加消息映射ON_WM_DRAWITEM,自己画
icscs 2007-08-09
  • 打赏
  • 举报
回复
http://bbs.msproject.cn/default.aspx?g=posts&t=286

参考这个源代码,或许有更好的效果
dx001 2007-08-09
  • 打赏
  • 举报
回复
重载 然后处理 eraseback 的一个什么消息
hurryboylqs 2007-08-08
  • 打赏
  • 举报
回复
这种问题应该自己先在网上搜搜,ps:按钮是不能通过这种方法来改变背景色的,可以用位图按纽或者自绘

16,471

社区成员

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

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

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