diff options
Diffstat (limited to 'alf/alftoplevel.cpp')
| -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); |
