From 1e9adbd19cf7702ac14796c4ce1984af15842f73 Mon Sep 17 00:00:00 2001 From: Jonas Kümmerlin Date: Wed, 10 Jun 2020 23:46:59 +0200 Subject: add checkbox transparency hack for winxp --- alf/alftoplevel.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/alf/alftoplevel.cpp b/alf/alftoplevel.cpp index 5cdd686..29e43cb 100644 --- a/alf/alftoplevel.cpp +++ b/alf/alftoplevel.cpp @@ -322,6 +322,24 @@ ALF_Toplevel_DefWindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) if (ret) { return ret; } else { + if (ALF_Compat_IsComCtlV6() && !ALF_Compat_IsVista()) { + // HACK! transparent checkbox background for comctl v6 on XP + // broken on every other version of windows, but not needed for Vista + + WCHAR c[32] = {0}; + GetClassNameW((HWND)lparam, c, sizeof(c)/sizeof(c[0])); + + if (!lstrcmpW(c, WC_BUTTONW)) { + RECT rcClient; + GetClientRect((HWND)lparam, &rcClient); + + ALF_Compat_DrawThemeParentBackground((HWND)lparam, (HDC)wparam, &rcClient); + SetBkColor((HDC)wparam, GetSysColor(COLOR_BTNFACE)); + SetTextColor((HDC)wparam, GetSysColor(COLOR_BTNTEXT)); + return (LRESULT)GetStockObject(HOLLOW_BRUSH); + } + } + SetBkColor((HDC)wparam, GetSysColor(COLOR_BTNFACE)); SetTextColor((HDC)wparam, GetSysColor(COLOR_BTNTEXT)); return (LRESULT)GetSysColorBrush(COLOR_BTNFACE); -- cgit v1.2.3