mirror of
https://github.com/reactos/reactos.git
synced 2025-05-06 18:31:26 +00:00
"Hack" to fix colors in themed mode in Windows AND ReactOS.
Taken from WinSpy++ (http://www.catch22.net/software/winspy) by J Brown svn path=/trunk/; revision=61641
This commit is contained in:
parent
6360f5452f
commit
5004e1f284
1 changed files with 60 additions and 6 deletions
|
@ -25,18 +25,72 @@ HICON hDialogIcon = NULL;
|
||||||
|
|
||||||
void MsConfig_OnTabWndSelChange(void);
|
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)
|
BOOL OnCreate(HWND hWnd)
|
||||||
{
|
{
|
||||||
TCHAR szTemp[256];
|
TCHAR szTemp[256];
|
||||||
TCITEM item;
|
TCITEM item;
|
||||||
|
|
||||||
hTabWnd = GetDlgItem(hWnd, IDC_TAB);
|
hTabWnd = GetDlgItem(hWnd, IDC_TAB);
|
||||||
hGeneralPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_GENERAL_PAGE), hWnd, GeneralPageWndProc);
|
hGeneralPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_GENERAL_PAGE), hWnd, GeneralPageWndProc); EnableDialogTheme(hGeneralPage);
|
||||||
hSystemPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SYSTEM_PAGE), hWnd, SystemPageWndProc);
|
hSystemPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SYSTEM_PAGE), hWnd, SystemPageWndProc); EnableDialogTheme(hSystemPage);
|
||||||
hFreeLdrPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_FREELDR_PAGE), hWnd, FreeLdrPageWndProc);
|
hFreeLdrPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_FREELDR_PAGE), hWnd, FreeLdrPageWndProc); EnableDialogTheme(hFreeLdrPage);
|
||||||
hServicesPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SERVICES_PAGE), hWnd, ServicesPageWndProc);
|
hServicesPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SERVICES_PAGE), hWnd, ServicesPageWndProc); EnableDialogTheme(hServicesPage);
|
||||||
hStartupPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_STARTUP_PAGE), hWnd, StartupPageWndProc);
|
hStartupPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_STARTUP_PAGE), hWnd, StartupPageWndProc); EnableDialogTheme(hStartupPage);
|
||||||
hToolsPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_TOOLS_PAGE), hWnd, ToolsPageWndProc);
|
hToolsPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_TOOLS_PAGE), hWnd, ToolsPageWndProc); EnableDialogTheme(hToolsPage);
|
||||||
|
|
||||||
LoadString(hInst, IDS_MSCONFIG, szTemp, 256);
|
LoadString(hInst, IDS_MSCONFIG, szTemp, 256);
|
||||||
SetWindowText(hWnd, szTemp);
|
SetWindowText(hWnd, szTemp);
|
||||||
|
|
Loading…
Reference in a new issue