如何改变对话框里按钮的颜色

mhhaifeng 2002-11-11 02:50:57
HBRUSH CLoginDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr= CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

switch (nCtlColor)
{
case CTLCOLOR_EDIT:
pDC->SetTextColor(RGB(255,17,0));
pDC->SetBkColor(RGB(0,255,6));
return (HBRUSH)(m_EditBursh.GetSafeHandle());
case CTLCOLOR_BTN:
pDC->SetTextColor(RGB(0,255,0));
pDC->SetBkColor(RGB(255,0,6));
return (HBRUSH) (m_ButBursh.GetSafeHandle());
case CTLCOLOR_DLG:
pDC->SetTextColor(RGB(0,10,10));
pDC->SetBkColor(RGB(170,0,106));
hbr=(HBRUSH)m_bkBrush;
default:
pDC->SetTextColor(RGB(255,17,0));
pDC->SetBkColor(RGB(0,255,6));
return (HBRUSH)(m_bkBrush.GetSafeHandle());
}
return hbr ;
}


在以上函数中
无法改变按钮颜色
为什么?

...全文
46 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CharmDream 2002-11-13
  • 打赏
  • 举报
回复
或者用别人的类,如CButtonST,CBitmapButton等
实际上,自己做个简单类并不难
Free_Man 2002-11-13
  • 打赏
  • 举报
回复
在CLoginDlg里不能定义button的背景颜色吧。自己写一个Button类,然后在自己的类里重新画了。:)
zwvista 2002-11-13
  • 打赏
  • 举报
回复
这个问题初学者问得太频繁了,建议斑竹把它放到FAQ中去
仅仅OnCtlColor是没用的,必须自己写CButton的子类
可以参考http://www.codeguru.com/buttonctrl/ClrButton.html
wj59 2002-11-11
  • 打赏
  • 举报
回复
up
ruihuahan 2002-11-11
  • 打赏
  • 举报
回复
用于绘制背景色的m_ButBursh的颜色并没有修改。
加入m_ButBursh.CreateSolidBrush(RGB(255,0,6));
试试。

15,980

社区成员

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

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