Author: dreimer
Date: Thu Jan 16 00:10:01 2014
New Revision: 61641
URL:
http://svn.reactos.org/svn/reactos?rev=61641&view=rev
Log:
"Hack" to fix colors in themed mode in Windows AND ReactOS.
Taken from WinSpy++ (
http://www.catch22.net/software/winspy) by J Brown
Modified:
trunk/reactos/base/applications/msconfig/msconfig.c
Modified: trunk/reactos/base/applications/msconfig/msconfig.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig…
==============================================================================
--- trunk/reactos/base/applications/msconfig/msconfig.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/msconfig/msconfig.c [iso-8859-1] Thu Jan 16 00:10:01
2014
@@ -25,18 +25,72 @@
void MsConfig_OnTabWndSelChange(void);
+////////////////////////////////////////////////////////////////////////////////
+// Taken from WinSpy++ 1.7
+//
http://www.catch22.net/software/winspy
+// Copyright (c) 2002 by J Brown
+//
+
+//
+// Copied from uxtheme.h
+// If you have this new header, then delete these and
+// #include <uxtheme.h> instead!
+//
+#define ETDT_DISABLE 0x00000001
+#define ETDT_ENABLE 0x00000002
+#define ETDT_USETABTEXTURE 0x00000004
+#define ETDT_ENABLETAB (ETDT_ENABLE | ETDT_USETABTEXTURE)
+
+//
+typedef HRESULT (WINAPI * ETDTProc) (HWND, DWORD);
+
+//
+// Try to call EnableThemeDialogTexture, if uxtheme.dll is present
+//
+BOOL EnableDialogTheme(HWND hwnd)
+{
+ HMODULE hUXTheme;
+ ETDTProc fnEnableThemeDialogTexture;
+
+ hUXTheme = LoadLibrary(_T("uxtheme.dll"));
+
+ if(hUXTheme)
+ {
+ fnEnableThemeDialogTexture =
+ (ETDTProc)GetProcAddress(hUXTheme, "EnableThemeDialogTexture");
+
+ if(fnEnableThemeDialogTexture)
+ {
+ fnEnableThemeDialogTexture(hwnd, ETDT_ENABLETAB);
+
+ FreeLibrary(hUXTheme);
+ return TRUE;
+ }
+ else
+ {
+ // Failed to locate API!
+ FreeLibrary(hUXTheme);
+ return FALSE;
+ }
+ }
+ else
+ {
+ // Not running under XP? Just fail gracefully
+ return FALSE;
+ }
+}
BOOL OnCreate(HWND hWnd)
{
TCHAR szTemp[256];
TCITEM item;
hTabWnd = GetDlgItem(hWnd, IDC_TAB);
- hGeneralPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_GENERAL_PAGE), hWnd,
GeneralPageWndProc);
- hSystemPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SYSTEM_PAGE), hWnd,
SystemPageWndProc);
- hFreeLdrPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_FREELDR_PAGE), hWnd,
FreeLdrPageWndProc);
- hServicesPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SERVICES_PAGE), hWnd,
ServicesPageWndProc);
- hStartupPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_STARTUP_PAGE), hWnd,
StartupPageWndProc);
- hToolsPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_TOOLS_PAGE), hWnd,
ToolsPageWndProc);
+ hGeneralPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_GENERAL_PAGE), hWnd,
GeneralPageWndProc); EnableDialogTheme(hGeneralPage);
+ hSystemPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SYSTEM_PAGE), hWnd,
SystemPageWndProc); EnableDialogTheme(hSystemPage);
+ hFreeLdrPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_FREELDR_PAGE), hWnd,
FreeLdrPageWndProc); EnableDialogTheme(hFreeLdrPage);
+ hServicesPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SERVICES_PAGE), hWnd,
ServicesPageWndProc); EnableDialogTheme(hServicesPage);
+ hStartupPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_STARTUP_PAGE), hWnd,
StartupPageWndProc); EnableDialogTheme(hStartupPage);
+ hToolsPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_TOOLS_PAGE), hWnd,
ToolsPageWndProc); EnableDialogTheme(hToolsPage);
LoadString(hInst, IDS_MSCONFIG, szTemp, 256);
SetWindowText(hWnd, szTemp);