首先,插入一张位图,格式为BMP,将ID改为IDB_BITMAP。接下来,添加一个静态文本和编辑按钮。
接着,打开类向导。选择class lnfo(类向导最后一项)
即可看到Message filter 在下拉框中选择window,返回Message Maps,选择CxxDlg ,
接着找到WM_EraseBkgnd,双击即可添加一个函数 在函数里面添加代码 即可得到如下所示
BOOL CTaoDlg::OnEraseBkgnd(CDC* pDC)
{
CDialog::OnEraseBkgnd(pDC);
HBITMAP m_hBitmap;
HDC m_hBkDC;
m_hBitmap = ::LoadBitmap(::GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP));
m_hBkDC = ::CreateCompatibleDC(pDC-> m_hDC);
if(m_hBitmap&&m_hBkDC)
{
::SelectObject(m_hBkDC,m_hBitmap);
::StretchBlt(pDC-> m_hDC,0,0,700,610,m_hBkDC,0,0,700,610,SRCCOPY);
::DeleteObject(m_hBitmap);
::DeleteDC(m_hBkDC);
}
return TRUE;
}
接下来 ,在Message Maps中添加WM_CTLCOLOR。双击进入写下代码如下
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_STATIC )
{
pDC->SetBkMode(TRANSPARENT);//设置背景透明
//pDC->SetTextColor(RGB(255,255,0));//设置静态文本字体颜色为黄色
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}
return hbr;
}
点击运行即可 注意上面加红的需要根据你的MFC程序名来确定