|
|
我写的这个函数目的是将DirectDraw页面用指定颜色填充上,但是我写了一个循环,反复执行这个函数上千次后,DDto->GetDC()报错,程序停止执行,是不是代码不规范,留下了隐患?代码如下:
BOOL FillSurface(LPDIRECTDRAWSURFACE DDto,DWORD color,RECT rt)
{
HDC hdc;
HBRUSH hbr;
hbr=::CreateSolidBrush(color);
hdc=::CreateCompatibleDC(NULL);
SelectObject(hdc,(HBRUSH)hbr);
if(FAILED(DDto->GetDC(&hdc)))
{
MessageBox(NULL,"页面无法得到合法的设备DC!","错误",MB_ICONINFORMATION);
return FALSE;
}
FillRect(hdc,&rt,hbr);
DDto->ReleaseDC(hdc);
: eleteObject((HBRUSH)hbr);
::DeleteDC(hdc);
return TRUE;
}
|
|