16,548
社区成员




class CWaitDlg {
protected:
CBitmap m_Back;
CStatic* pStInfo;
public:
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
};
BOOL CWaitDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
// IDC_STC_INFO 原来是一个IDC_STATIC控件,只是改了一下ID,因为其中的文字需要
// 动态显示,动态更新。
pStInfo = (CStatic*)this->GetDlgItem(IDC_STC_INFO);
m_Back.LoadBitmapW(IDB_BMP_WAIT_BK);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
HBRUSH CWaitDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
//HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
OnEraseBkgnd(this->GetDC());
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)::GetStockObject(HOLLOW_BRUSH);
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
//return hbr;
}
BOOL CWaitDlg::OnEraseBkgnd(CDC* pDC)
{
//return CDialog::OnEraseBkgnd(pDC);
CDC dc;
dc.CreateCompatibleDC(pDC);
dc.SelectObject(&m_Back);
//获取BITMAP对象
BITMAP hb;
m_Back.GetBitmap(&hb);
//获取窗口大小
CRect rt;
GetClientRect(&rt);
//显示位图
pDC->StretchBlt(0, 0, rt.Width(), rt.Height(),
&dc, 0, 0, hb.bmWidth, hb.bmHeight, SRCCOPY);
return TRUE;
}
//BEGIN_MESSAGE_MAP(CWaitDlg, CDialog)
ON_WM_CTLCOLOR()
ON_WM_ERASEBKGND()
//END_MESSAGE_MAP()