C++ API使用双缓存绘制窗口
在使用GUI的时候,如果不使用双缓存,屏幕就会闪烁,我想问一问大家是怎么实现双缓存的?我觉得我的方法在效率方面很低。。。
HWND hwnd;
HDC hdc; //DC
HDC bghdc; //缓存DC
void Draw()
{
hdc = GetDC(hwnd);
bghdc = CreateCompatibleDC(hdc);
//此处为绘制内容
BitBlt (hdc, 0, 0, 800, 600, bghdc, 0, 0, SRCCOPY);
DeleteDC(bghdc);
ReleaseDC(hwnd, hdc);
}
每次绘制的时候都要Get一次,再创建一次,感觉上似乎降低了效率。。。不知道大家是怎么实现的??
被咬的苹果
12 years ago
Answers
如果每次画的图不同, 你肯定要这样, 因为你必须要画图, 画在哪个dc上都是要画的, 而如果有些东西不变, 你就可以先放在内存dc中存起来, 用的时候直接贴上,比如:
一个好农民
answered 12 years ago