函数的响应消息:
ON_WM_ERASEBKGND()
函数的声明:
BOOL OnEraseBkgnd(CDC* pDC);
函数的实现
BOOL CMFCShareDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDialog::OnEraseBkgnd(pDC);
HBITMAP m_hBitmap;
HDC m_hBkDC;
m_hBitmap = ::LoadBitmap(::GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP1));
m_hBkDC = ::CreateCompatibleDC(pDC->m_hDC);
if (m_hBitmap && m_hBkDC)
{
CRect rectDlg;
GetClientRect(rectDlg);
::SelectObject(m_hBkDC, m_hBitmap);
::StretchBlt(pDC->m_hDC, 0, 0, rectDlg.right, rectDlg.bottom, m_hBkDC, 0, 0, 1024, 768, SRCCOPY);
::DeleteObject(m_hBitmap);
::DeleteDC(m_hBkDC);
}
return TRUE;
}
添加背景后,static控件背景没有改变,因此需要添加OnCtlColor消息函数
消息映射
ON_WM_CTLCOLOR()
函数声明
HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
函数实现