读书人

vc怎么用语句设置一个button控件的Bac

发布时间: 2012-03-15 11:50:38 作者: rapoo

vc如何用语句设置一个button控件的BackColor?
谢谢!

[解决办法]
OnCtnColor
[解决办法]
从网上下载一个重绘的button类吧。
[解决办法]
通过消息WM_CTLCOLOR我们可以改变对话框或一些特殊控件的背景颜色
1、添加WM_CTLCOLOR消息映射。
2、在CWnd::OnCtlColor里面作相应的处理
HRESULT CWnd::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor)
{
switch (nCtlColor)
{
case CTLCOLOR_BTN: // Button control
{
pDC-> SetBkColor( RGB( 255, 0, 0) );
}
break;
case CTLCOLOR_DLG: // Dialog box
break;
case CTLCOLOR_BUTTON: // BUTTONcontrol
{
COLORREF bkColor = RGB(255,0,0);
CRect rect;
pWnd-> GetClientRect(&rect);
CBrush br;
br.CreateSolidBrush(bkColor);
pDC-> FillRect(rect, &br);*/
pDC-> SetBkColor(bkColor);
}
break;
case CTLCOLOR_LISTBOX: // List-box control
break;
case CTLCOLOR_MSGBOX: // Message box
break;
case CTLCOLOR_SCROLLBAR: // Scroll-bar control
break;
case CTLCOLOR_STATIC: // Static control
break;
default:
break;
}
return CWnd::OnCtlColor(pDC, pWnd, nCtlColor);
}

[解决办法]
你可以自定义一个继承于CButton的类,然后在DrawItem里面写代码,但是,你的Button属性需要改一下,让它变成可以描画的。
[解决办法]
在类向导中添加该按纽所在窗体的消息WM_CTLCOLOR,在该映射函数中捕获该按纽并设置其背景色

读书人网 >VC/MFC

热点推荐