Ich möchte gerne eine Groupbox mit weißer Überschrift haben. Anscheinend funkt das XP-Luna-Look-Theme dazwischen. Der Text ist immer schwarz. Wenn ich das XP-Manifest (XP-Theme) für das ganze Programm abschalte, ist meine Überschrift zwar weiß, alle anderen Controls aber leider auch im ältlichen Win98-Look.
Jetzt gibt es die schöne Funktion SetWindowTheme in der
Unit UxTheme. Diese schaltet tatsächlich das Theme für einzelne Controls ab:
SetWindowTheme(Edit1.Handle,'',''); Edit1.Enabled:=False; Edit1.Enabled:=True;
Leider nicht für eine GroupBox oder eine RadioGroup:
Delphi-Quellcode:
H:=GroupBox1.Handle;
T:=GetWindowTheme(H);
E:=SetWindowTheme(H,NIL,''); GroupBox1.Enabled:=False; GroupBox1.Enabled:=True;
T:=GetWindowTheme(H);
H ist das
Handle zur Groupbox und sieht beim Debuggen gut aus. T ist jedoch - anders als beim TEdit - sofort 0. So als ob die Groupbox schon gleich kein Theme hätte. Ändern tut sich am Aussehen dann erwartungsgemäß auch nichts. E ist 0, es scheint also kein Fahler aufzutreten.
Ist evtl. das
Handle falsch? Ist eine TGroupBox von Delphi selbst zusammengebastelt und in Wirklichkeit gar kein natives Windows-Control? Wie komme ich an das richtige
Handle, denn das Theme wird ja irgendwie angewendet...
Hat jemand eine Idee?
Ich arbeite übrigens mit Delphi 7.