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

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 ;
}


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

...全文
22 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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));
试试。
回复
相关推荐
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2002-11-11 02:50
社区公告
暂无公告