#pragma once #include "stdafx.h" #ifndef BACK_COLOR //COLORREF DrawerBackColor = RGB(192, 192, 192); #define BACK_COLOR #endif // !BACK_COLOR class DCHelp { public: //static COLORREF DrawerBackColor;// = RGB(192, 192, 192); // 清空画布 static bool ClearDC(CDC* pCdc, COLORREF clrBack) { //if (symbolFlag) //{ // clrBack = RGB(192, 192, 192); //} //else //{ // clrBack = RGB(255, 255, 255); //} // CRect clip; pCdc->GetClipBox(clip); //if (pCdc->GetDeviceCaps(RASTERCAPS)&RC_BITBLT) //{ // CBrush br(clrBack); // CBrush* pOldBrush = pCdc->SelectObject(&br); // pCdc->PatBlt(clip.left, clip.top, clip.Width(), clip.Height(), PATCOPY);//并不是所有设备支持此函数 // pCdc->SelectObject(pOldBrush); //} //else pCdc->FillSolidRect(clip, clrBack); return true; } // 清空画布 static bool ClearDCNull(CDC* pCdc, COLORREF clrBack) { CRect clip; pCdc->GetClipBox(clip); if (pCdc->GetDeviceCaps(RASTERCAPS)&RC_BITBLT) { CBrush* pBrush= CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH)); CBrush* pOldBrush = pCdc->SelectObject(pBrush); pCdc->PatBlt(clip.left, clip.top, clip.Width(), clip.Height(), PATCOPY);//并不是所有设备支持此函数 pCdc->SelectObject(pOldBrush); } else { CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH)); //FromHandle一个画刷句柄转化为一个画刷对象 //GetStockObject(NULL) 获取一个透明画刷句柄 CBrush *pOldBrush = pCdc->SelectObject(pBrush);// 把画刷加载到设备表述表 pCdc->Rectangle(clip); pCdc->SelectObject(pOldBrush); //pCdc->FillSolidRect(clip, clrBack); } return true; } };