CreateCompatibleBitmap创建的位图默认是黑色的,在往上画之前,必须刷成你要的底色譬如白色。如何刷它的底色

CreateCompatibleBitmap创建的位图默认是黑色的,在往上画之前,必须刷成你要的底色譬如白色。怎么刷它的底色?
如题!!!

------解决方案--------------------
下面的例子是刷成白色背景
HDC hMemDC = ::CreateCompatibleDC(hdc);
if(hMemDC == NULL)
return NULL;
CSize cs(GetWidth()+GetPenWidth(),GetHeight()+GetPenWidth());
HBITMAP hBmp = ::CreateCompatibleBitmap(hdc,cs.cx,cs.cy);
.....

HBITMAP hOldBmp =(HBITMAP) ::SelectObject(hMemDC,hBmp);

PatBlt(hMemDC,0,0,cs.cx,cs.cy,WHITENESS);

........

------解决方案--------------------
CDC::FillSolidRect就可以了
------解决方案--------------------
Y___Y(一叶障目)
CDC::FillSolidRect就可以了

------------------------------------

就这样
------解决方案--------------------
你把它弄成白色的肯定是会起作用的,不行是你其它地方错了,不过要是想弄成其它颜色就有问题了,我也正在为这个问题苦脑呢
你看下面的代码:
------解决方案--------------------
void CDBDCView::MemDraw(CDC* pDC)
{
CRect rect;
GetClientRect(rect);
CDC memDC;
CBitmap temBmp;
memDC.CreateCompatibleDC(pDC);
temBmp.CreateCompatibleBitmap(&memDC,rect.Width(),rect.Height());
CBitmap* pOldBmp=memDC.SelectObject(&temBmp);
CBrush brush(RGB(0,255,255));
CBrush* pOldBrush=memDC.SelectObject(&brush);
memDC.Rectangle(rect);
COLORREF oldColor;
oldColor=memDC.SetBkColor(RGB(255,0,0));
memDC.TextOut(100,100, "**** ");
pDC-> BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),&memDC,
0,0,SRCCOPY);
memDC.SelectObject(pOldBmp);
memDC.SetBkColor(oldColor);
}
上面设置的字体背景为红色,但显示时全是黑色的把字都盖了
那个定义的也不行刷子
帮我解释一下这个问题,有什么解决方法
------解决方案--------------------
嘿嘿,以前做的时候加载了一个24bit的位图
做最下面的画布。

-----------------------------
http://ma3310.vicp.net
------解决方案--------------------
void CDBDCView::MemDraw(CDC* pDC)
{
CRect rect;
GetClientRect(rect);
CDC memDC;
CBitmap temBmp;
memDC.CreateCompatibleDC(pDC);
> > > temBmp.CreateCompatibleBitmap(&memDC,rect.Width(),rect.Height());
CBitmap* pOldBmp=memDC.SelectObject(&temBmp);
CBrush brush(RGB(0,255,255));
CBrush* pOldBrush=memDC.SelectObject(&brush);
memDC.Rectangle(rect);
COLORREF oldColor;
oldColor=memDC.SetBkColor(RGB(255,0,0));
memDC.TextOut(100,100, "**** ");
pDC-> BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),&memDC,0,0,SRCCOPY);
memDC.SelectObject(pOldBmp);
> > > memDC.SelectObject(pOldBrush);
memDC.SetBkColor(oldColor);
}

FROM MSDN:
A memory DC exists only in memory. When the memory DC is created, its display surface is exactly one monochrome pixel wide and one monochrome pixel high. Before an application can use a memory DC for drawing operations, it must select a bitmap of the correct width and height into the DC.