1,新建基于对话框的mfc程序。
添加一个static标签控件,ID为:IDC_STATIC_DEMO
在CXXXDlg类中添加一个类型闭洞为CBrush的成员变量m_brs
m_brs.CreateSolidBrush(RGB(0,0,55))//需要程序使用的背景画刷
并且在CXXXDlg的构造函数中添加一行代码
在CXXXDlg中添加WM_CTLCOLOR消息处理函数
然后在OnCtlColor中写下面的轿察枯代码:
if(IDC_STATIC_DEMO==pWnd->GetDlgCtrlID())//判断正在绘制的是不是我们需要改变的控件
{
pDC->SetBkMode(TRANSPARENT)//设置透明输出
pDC->SetTextColor(RGB(255,0,0))//设置文字颜色
return
m_brs//用自定义的画刷去绘制背景
}
这样。。。就OK了。。
亲,给点分吧,这没链年头,不容易啊。。。别忘了哦。。。
PS:如果要该按钮的,需要添加DrawItem这个虚函数去搞定。。。。
添加背景毁塌差最好是放在OnEraseBkgnd(CDC* pDC)函数中,在OnPaint中有可能会闪屏。
// CBitmap m_pBmp
// BITMAP bm
// CDC dcMem
// m_pBmp.LoadBitmap(IDB_BITMAP_BG)
// 纤皮 m_pBmp.GetBitmap(&bm)//得到位图尺寸
// dcMem.CreateCompatibleDC(pDC)
// CBitmap* pOldBitmap = dcMem.SelectObject(&m_pBmp)
// pDC->SetStretchBltMode(COLORONCOLOR)//这个模式不设置的话会导致图片严重失衫郑真
// pDC->StretchBlt(0, 0, rect.Width(), rect.Height(), &dcMem, 0, 0, bm.bmWidth,bm.bmHeight,SRCCOPY)
// dcMem.SelectObject(pOldBitmap)
// dcMem.DeleteDC()
用我这个代码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)