GDI 畫圖收到 `WM_PAINT` 先畫背景再貼圖,拖動視窗閃爍;視頻播放器不閃。
case WM_ERASEBKGND:
return 1; // 告訴系統「我已處理背景」,系統不再填實心刷
在 `WM_PAINT` 內用 `BitBlt` 直接將記憶體 DC 內容一次性複製到螢幕 DC。
HDC hMemDC = CreateCompatibleDC(hdc);
HBITMAP hBmp = CreateCompatibleBitmap(hdc, width, height);
SelectObject(hMemDC, hBmp);
// ... 在 hMemDC 畫圖 ...
BitBlt(hdc, 0, 0, width, height, hMemDC, 0, 0, SRCCOPY);
DeleteObject(hBmp); DeleteDC(hMemDC);
視頻播放器多用 **DirectX / OpenGL / Media Foundation** 直接把解碼幀推到 GPU 表面,繞過 GDI,自然不閃。