15,979
社区成员
发帖
与我相关
我的任务
分享
class CMyStatusBar : public CStatusBar
{
DECLARE_DYNAMIC(CMyStatusBar)
DECLARE_MESSAGE_MAP()
protected:
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
};
IMPLEMENT_DYNAMIC(CMyStatusBar, CStatusBar)
BEGIN_MESSAGE_MAP(CMyStatusBar, CStatusBar)
ON_WM_ERASEBKGND()
END_MESSAGE_MAP()
BOOL CMyStatusBar::OnEraseBkgnd(CDC* pDC)
{
RECT r;
GetClientRect(&r);
pDC->FillSolidRect(&r, RGB(0,128,128));
return TRUE;
}
BOOL CStatusBarCtrlEx::OnEraseBkgnd(CDC* pDC)
{
CDC memDC;
memDC.CreateCompatibleDC(pDC);//创建兼容的设备
CBitmap *pOldBmp = memDC.SelectObject(&m_bmpBackground);//将位图选进设备
CRect rect;
GetWindowRect(&rect);//获取状态栏窗体大小
pDC->BitBlt(0,0, rect.GetWidth(), rect.GetHeight(), &memDC, 0,0, SRCCOPY);//设备之间的拷贝
memDC.SelectObject(pOldBmp);//恢复设备
return TRUE;
}