|
|
最近用了双缓冲BITBLT绘图,感觉图象还是有点闪(我窗口的背景已经设置为NULL)
hdcMem = CreateCompatibleDC (hdc) ;
SelectObject (hdcMem, hSence) ;
BitBlt (hdc, 0,0, 640, 480, hdcMem, 0, 0, SRCCOPY) ;
SelectObject (hdcMem, hSlash) ;
BitBlt (hdc, 0,0, 100, 20, hdcMem, 0, 0, SRCCOPY) ;
DeleteDC( hdcMem );
EndPaint(hWnd, &ps);
所以我尝试把全部的图先绘制到一个HDCMEM里,再把HDCMEM绘制到屏幕上,可是这样根本就贴不出图来,请问这是为什么,还有如何解决双缓冲时图象闪烁的问题,谢谢
PAINTSTRUCT ps;
hdc = BeginPaint(hWnd, &ps);
hdcMem = CreateCompatibleDC (hdc) ;
hdcTemp = CreateCompatibleDC (hdcMem) ;
SelectObject (hdcTemp, hSence) ;
BitBlt (hdcMem, 0,0, 640, 480, hdcTemp, 0, 0, SRCCOPY) ;
SelectObject (hdcTemp, hSlash) ;
BitBlt (hdcMem, 0,0, 155, 46, hdcTemp, 0, 0, SRCCOPY) ;
BitBlt (hdc, 0,0, 640, 480, hdcMem, 0, 0, SRCCOPY) ;
DeleteDC( hdcTemp);
DeleteDC( hdcMem );
EndPaint(hWnd, &ps); |
|