当对话框背景需要更新显示时,系统会自动发送WM_ERASEBKGND消息。
步骤一,添加WM_ERASEBKGND消息的映射函数。
步骤二,在映射函数处理中加入如下面代码。
BOOL CMFCApplication1Dlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
// 设置画刷为希望的背景
CDC backBmp;
backBmp.CreateCompatibleDC(pDC);
CBitmap bitmap;
//加载位图资源的ID
bitmap.LoadBitmap(IDB_BITMAP_ZQT);
CBrush m_brushBackground;
m_brushBackground.CreatePatternBrush(&bitmap); ///创建位图画刷
CRect rect;
GetClientRect(&rect);
CBrush* pOldMemDCBrush = pDC->SelectObject(&m_brushBackground);
pDC->PatBlt(0, 0, rect.Width(),rect.Height(), PATCOPY);
//pDC->SelectObject(pOldMemDCBrush);
return TRUE;
//return CDialogEx::OnEraseBkgnd(pDC);
}
步骤一,添加WM_ERASEBKGND消息的映射函数。
步骤二,在映射函数处理中加入如下面代码。
BOOL CMFCApplication1Dlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
// 设置画刷为希望的背景
CDC backBmp;
backBmp.CreateCompatibleDC(pDC);
CBitmap bitmap;
//加载位图资源的ID
bitmap.LoadBitmap(IDB_BITMAP_ZQT);
CBrush m_brushBackground;
m_brushBackground.CreatePatternBrush(&bitmap); ///创建位图画刷
CRect rect;
GetClientRect(&rect);
CBrush* pOldMemDCBrush = pDC->SelectObject(&m_brushBackground);
pDC->PatBlt(0, 0, rect.Width(),rect.Height(), PATCOPY);
//pDC->SelectObject(pOldMemDCBrush);
return TRUE;
//return CDialogEx::OnEraseBkgnd(pDC);
}