diff options
| author | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2020-06-10 23:46:59 +0200 |
|---|---|---|
| committer | Jonas Kümmerlin <jonas@kuemmerlin.eu> | 2020-06-10 23:46:59 +0200 |
| commit | 1e9adbd19cf7702ac14796c4ce1984af15842f73 (patch) | |
| tree | 4991cf51e0704ab2f386f3d442e91235d6bc4dd6 /alf | |
| parent | 7829efa0bd8f41b61a1c939940244503baa815b5 (diff) | |
add checkbox transparency hack for winxp
Diffstat (limited to 'alf')
| -rw-r--r-- | alf/alftoplevel.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
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); |
