1.资源视图-右键-添加资源-Bitmap-新建/导入;
2.类向导-消息-WM_CTLCOLOR-确定,重写OnCtlColor函数
HBRUSH CDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
static CBrush gBr;
static bool isInited = false;
if (!isInited)
{
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP3);
gBr.CreatePatternBrush(&bitmap);
COLORREF clearColor = -1;
bitmap.DeleteObject();
isInited = true;
}
if (pWnd == this)
{
pDC->SetBkMode(TRANSPARENT);
return gBr; //主窗口背景使用这个背景刷
}
else
{
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(NULL_BRUSH); //其他控件使用透明背景
}
// TODO: 在此更改 DC 的任何特性
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}
我自己随便画的位图,结果展示如下: