Windows Farbschema (Color Scheme) zur Laufzeit wechseln

Roadrunner27

Grünschnabel
Tagchen...

Ich habe da ein größeres Problem und steh gerade echt aufm Schlauch...:confused:

Ich muss eine Tag/Nacht-Umschaltung der Win-Oberfläche realisieren, indem ich zwischen 2 Windows Farbschemata umschalte. Habe aber keinen Plan wie ich das hinbekommen kann. Entwicklungsumgebung ist MS Visual Studio Pro 2005 (C++) & Win XP Pro.

Meine Kernfrage ist, wie komme ich an die Windows Farbschemata über Visual C++ heran und wie kann ich dann zwischen zwei Farbschemata über z.B. einen Button umschalten.

Vielen vielen Dank schon mal für Eure Hilfe und Antworten.:)

Mfg Roadrunner27...:)
 
Das ist der passende Reg - Schlüssel:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ ThemeManager]
"ColorName"="Metallic"

Hoffe das hilft!

XeoX
 
Danke XeoX. Es hilft mir nur bedingt. :) Der Endnutzer des Programms soll dann per Klick auf einen Button zwischen mehreren Schemata auswählen und wechseln können. Daher benötige ich eine Funktion, die mir quasi das aktuelle Farb-Schema ausliest und ggf. das neue Farb-Schema setzt.

Also wer noch was weiß oder selbst dieses Problem schon mal gelöst hat, biete mir BITTE ein paar Lösungsansätze... :)

Vielen Dank nochmal...

Grüße

Roadrunner27
 
Hi XeoX. Vielen Dank für Deine Hilfe!!:) Die Links haben mir schon sehr geholfen Habe jetzt nur leider noch das Problem, wie ich den Desktop zur Laufzeit über C++ aktualisieren kann. Quasi das zur implementieren, wenn man bei den Eigenschaften auf "Übernehmen" klickt. Weißt Du da vielleicht auch Rat...?:):):)

Vielen Dank schon mal:):):)

Mfg Roadrunner27
 
In der API gibt es:
SystemParametersInfo()

Vielleicht hilft der dir bei der Arbeit ja weiter!

Gruß XeoX
 
Hab mich nochmal in meinen Lesezeichen umgesehen und bin darauf gestoßen. sollte den Desktop aktualisieren!
C++:
#include <windows.h>

int PASCAL WinMain (HANDLE hInstance , HANDLE hPrevInstance , LPSTR lpszCmdParam , int nCmdShow){

	RedrawWindow(0, NULL, 0, RDW_ERASE  | RDW_FRAME | RDW_ALLCHILDREN |
		RDW_INTERNALPAINT | RDW_INVALIDATE | RDW_ERASENOW | RDW_UPDATENOW);

	return 0;
}
Die Seite dazu!: http://www.dipl-ing-kessler.de/developer/test/desktref/index.htm

Gruß XeoX
 
Tagchen XeoX...

Supi vielen vielen Dank!! :) :) :)
Hat mir super geholfen Funktioniert jetzt :)
Noch hier und da ein paar Kleinigkeiten, aber mein Programm macht jetzt das was es soll.

Vielen Dank nochmal für Deine Hilfe! :)

Mfg Roadrunner27
 
Zurück