diff --git a/src/conio/win32gdi.c b/src/conio/win32gdi.c index d61197af9752d9a06a34b7c8b0ffdaeb7f9ee3b0..2cb06b46c35bc6888e52ac2d555af1ad114eeffe 100644 --- a/src/conio/win32gdi.c +++ b/src/conio/win32gdi.c @@ -281,12 +281,16 @@ gdi_handle_wm_paint(HWND hwnd) data = list->data; } winDC = BeginPaint(hwnd, &ps); - if (memDC == NULL) + if (memDC == NULL) { memDC = CreateCompatibleDC(winDC); + SetPixel(memDC, 0, 0, RGB(0, 0, 0)); + } if (di == NULL) di = CreateDIBitmap(winDC, (BITMAPINFOHEADER *)&b5hdr, CBM_INIT, data, (BITMAPINFO *)&b5hdr, DIB_RGB_COLORS); else SetDIBits(winDC, di, 0, dih, data, (BITMAPINFO *)&b5hdr, DIB_RGB_COLORS); + // Clear to black first + StretchBlt(winDC, 0, 0, w, h, memDC, 0, 0, 1, 1, SRCCOPY); di = SelectObject(memDC, di); if (ciolib_scaling) { BitBlt(winDC, 0, 0, w, h, memDC, 0, 0, SRCCOPY);