
XP-Styles in Buttonbar
Moderators: Hacker, Stefan2, white
XP-Styles in Buttonbar
Bekanntlich wird im Total Commander keine Standard-Toolbar verwendet. Die Buttons auf dem verwendeten, benutzerdefinierten Control sehen auf einem Windows XP-System mit eingeschalteten XP-Styles nicht wie Standard-Toolbar-Buttons aus; benutzen also offenbar keine XP-Styles. Wird das noch engebaut? Dankeschön im Vorraus 

- ghisler(Author)
- Site Admin
- Posts: 50471
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Nein, leider nicht, weil Microsoft ein ziemliches Chaos angerichtet hat mir der dafür nötigen DLL. Bei manchen Windows-Versionen fehlt sie ganz, bei einigen hat es fehlerhafte ältere Versionen etc. Ich müsste die DLL selber installieren, was natürlich wieder zu Problemen mit anderen Programmen führen könnte.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
- ghisler(Author)
- Site Admin
- Posts: 50471
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
comctl32.dll , die DLL für die "Microsoft Common Controls".
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
also unter xp muss diese DLL auf jeden Fall dabei sein, in der Version 6, sonst könnte XP selber keine Themes unterstützen.... Deswegen frag ich mich, wieso die dann fehlerhaft sein soll bzw. fehlen könnte? 
EDIT: @christian: Kannst du in Delphi nicht ne Wrapper-Klasse von dieser DLL erzeugen? Achso, hmm, in Delphi 2 geht das ja evtl. noch gar nicht...
Naja, Versuch wars wert. 

EDIT: @christian: Kannst du in Delphi nicht ne Wrapper-Klasse von dieser DLL erzeugen? Achso, hmm, in Delphi 2 geht das ja evtl. noch gar nicht...


- ghisler(Author)
- Site Admin
- Posts: 50471
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Doch TC verwendet die comctrl32.dll für andere Dinge als den Toolbar (sofern sie vorhanden ist). Einige Funktionen wie der Toolbar sind aber problematisch.
- Microsoft geht sehr verschwenderisch mit dem Platz um - so kleine Buttons sind damit nicht möglich
- Der Toolbar verwendet Halbdurchsichtigkeit und verschiedene Farben für inaktiv, Maus über dem Button etc. Total Commander speichert die Icons des Toolbar in einem Bitmap, damit er sie nicht ständig aus den EXE-Dateien extrahieren muss. Für die XP-Toolbar müsste ich ca. 4 verschiedene Bilder pro Icon abspeichern! Leider habe ich bisher nicht herausgefunden, wie man die Icons selbst in eine Datei speichern könnte.
Das mache ich bereits, z.B. für gewisse Buttons. Beim Toolbar ist das aber aus mehreren Gründen problematisch:Die Lösung besteht darin, die in der UxTheme.dll enthaltenen Funktionen dynamisch zu importieren und zum Zeichnen zu verwenden
- Microsoft geht sehr verschwenderisch mit dem Platz um - so kleine Buttons sind damit nicht möglich
- Der Toolbar verwendet Halbdurchsichtigkeit und verschiedene Farben für inaktiv, Maus über dem Button etc. Total Commander speichert die Icons des Toolbar in einem Bitmap, damit er sie nicht ständig aus den EXE-Dateien extrahieren muss. Für die XP-Toolbar müsste ich ca. 4 verschiedene Bilder pro Icon abspeichern! Leider habe ich bisher nicht herausgefunden, wie man die Icons selbst in eine Datei speichern könnte.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Ich glaube, hier missverstehen wir uns beide. Du kannst Deine Toolbar weiter so zeichnen wie bisher. Die Funktionen aus der UxTheme.dll werden lediglich für das Zeichnen des Hintergrunds (inkl. Rahmen) genommen, die einzelnen Bitmaps werden danach transparent darübergelegt. In den Größen bist Du auch frei, die UxTheme.dll malt den Toolbar-Button so groß oder klein wie Du willst.
2ghisler(Author)
Zum Thema Halbdurchsichtigkeit: Bezieht sich diese Aussage auf das Standard Windows Toolbar Control oder auf das selbsterstellte Control, dem möglicherweise auch noch XP-Styles beigebracht werden?
Wäre es denn grundsätzlich möglich, dass Standard-Toolbar-Control zu benutzen oder geht das auch Kompatibilitätsgründen nicht?
2Sven
Soweit ich das beurteilen kann besteht bei den Buttons des selbstdefinierten Toolbar-Controls, dass Total Commander nutzt kaum ein Unterschied zwischen Button- und Bildgröße.
Hinzu kommt, dass beim Standard-Toolbar-Control die eigentliche Toolbar nochmal ordentlich Platz in der Höhe benötigt.
Wie auch immer: Ich würde diesen Platzverlust hinnehmen.
Zum Thema Platz: Das würde ich in Kauf nehmen.Das mache ich bereits, z.B. für gewisse Buttons. Beim Toolbar ist das aber aus mehreren Gründen problematisch:
- Microsoft geht sehr verschwenderisch mit dem Platz um - so kleine Buttons sind damit nicht möglich
- Der Toolbar verwendet Halbdurchsichtigkeit und verschiedene Farben für inaktiv, Maus über dem Button etc. Total Commander speichert die Icons des Toolbar in einem Bitmap, damit er sie nicht ständig aus den EXE-Dateien extrahieren muss. Für die XP-Toolbar müsste ich ca. 4 verschiedene Bilder pro Icon abspeichern! Leider habe ich bisher nicht herausgefunden, wie man die Icons selbst in eine Datei speichern könnte.
Zum Thema Halbdurchsichtigkeit: Bezieht sich diese Aussage auf das Standard Windows Toolbar Control oder auf das selbsterstellte Control, dem möglicherweise auch noch XP-Styles beigebracht werden?
Wäre es denn grundsätzlich möglich, dass Standard-Toolbar-Control zu benutzen oder geht das auch Kompatibilitätsgründen nicht?
2Sven
ich denke hier meint ghisler, dass ein Toolbar-Button deutlich größer ist als das darauf befindliche Bild, weil ein bestimmter Bereich für den Rand reserviert ist. Vorgabegröße sind hier glaube ich 24 x 22 für den Button bzw. 16 x 15 für das Bild.In den Größen bist Du auch frei, die UxTheme.dll malt den Toolbar-Button so groß oder klein wie Du willst.
Soweit ich das beurteilen kann besteht bei den Buttons des selbstdefinierten Toolbar-Controls, dass Total Commander nutzt kaum ein Unterschied zwischen Button- und Bildgröße.
Hinzu kommt, dass beim Standard-Toolbar-Control die eigentliche Toolbar nochmal ordentlich Platz in der Höhe benötigt.
Wie auch immer: Ich würde diesen Platzverlust hinnehmen.
- ghisler(Author)
- Site Admin
- Posts: 50471
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
TC verwendet ein einziges nicht durchsichtiges Bitmap fuer den Buttonbar - nicht für jeden Button ein Bitmap! Der ganze Toolbar kann so auf einmal gezeichnet werden. Deshalb geht das so leider nicht mit der Transparenz...
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com