我先用StretchBlt帖一幅位图在对话框上
然后重载WM_CTLCOLOR 调用OnCtlColor
里面我是这样写的;
if (nCtlColor==CTLCOLOR_STATIC)
{
pDC-> SetTextColor(RGB(255,0,0)); //设置字体颜色
pDC-> SetBkMode(TRANSPARENT); //设置字体背景为透明
}
设置字体颜色都可以,但我想把 静态文本框背景色 改成背景颜色却不行;
谢谢大家帮忙
然后重载WM_CTLCOLOR 调用OnCtlColor
里面我是这样写的;
if (nCtlColor==CTLCOLOR_STATIC)
{
pDC-> SetTextColor(RGB(255,0,0)); //设置字体颜色
pDC-> SetBkMode(TRANSPARENT); //设置字体背景为透明
}
设置字体颜色都可以,但我想把 静态文本框背景色 改成背景颜色却不行;
谢谢大家帮忙
再return一个你要改的颜色的画刷应该就行了.
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if( nCtlColor == CTLCOLOR_STATIC) //( IDC_CHECK_SELECT_ALL== pWnd->GetDlgCtrlID() )
{
//static CBrush brush(RGB(228,239,255));
static CBrush brush(RGB(255,255,255)); pDC->SetBkMode(TRANSPARENT); return brush; }
return hbr;
if( nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}
就解决了
谢谢大家