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);
参考