Win32 API绘图避免闪烁

首先在创建窗口时候设置背景为NULL

wc.hbrBackground = NULL;

然后在WM_CREATE中

hdc = GetDC(hWnd); //获取设备
hdcBuffer = CreateCompatibleDC(hdc); //给设备分配一个内存空间
hBitMap = CreateCompatibleBitmap(hdc, 1200, 700); //创建一个cxClient, cyClient大小并且适应DC设备环境的位图
ReleaseDC(hWnd, hdc);
SelectObject(hdcBuffer, hBitMap); //将位图设置为hdcBuffer的画刷

在WM_PAINT函数中画图

PatBlt(hdcBuffer, 0, 0, 1200, 700, WHITENESS);
{Draw something;}
BitBlt(hdc, 0, 0, 1200, 700, hdcBuffer, 0, 0, SRCCOPY);

参考

blog.csdn.net