Rubrik: Oberfläche · Sonstiges | VB-Versionen: VB5, VB6 | 18.09.02 |
XP-Style auf das eigene Programm übertragen Mit XML und ein wenig API übertragen Sie den XP-Style auch auf Ihre VB-Anwendung. | ||
Autor: Stefan Wanitzek | Bewertung: | Views: 37.810 |
www.thundercloud.info | System: WinXP, Win8, Win10, Win11 | Beispielprojekt auf CD |
Sie kennen das sicherlich: Sie haben ein Programm unter Windows XP laufen, doch werden die Standard-Controls weiterhin grau und eintönig dargestellt, wie bei den vorherigen Windows Versionen.
Aber diesem kann man entgegenwirken - und zwar mit XML und ein wenig Windows API.
VisualBasic Programme unter WindowsXP
Fangen wir an:
Als erstes erstellen wir eine Datei Namens Projekt1.exe.manifest mit folgendem Inhalt:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="Firma.Projekt1.Projekt1" type="win32" /> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly>
Da einige - von Programm zu Programm unterschiedliche - Änderungen vorgenommen werden müssen, schauen wir uns die wichtigsten Zeilen doch mal an:
version="1.0.0.0"
In dieser Zeile muss die exakte Programmversion stehen, falls diese fehlerhaft ist, kommt <>keine Veränderung der Controls zustande.
name="IhreFirma.Projekt1.Produktname"
Ersetzen Sie IhreFirma durch dem Namen Ihrer Firma, Projekt1 durch den internen Namen des Programmes und Produktname durch den Produktnamen Ihrer Applikation.
Alle weiteren Sachen interessieren uns nicht und können unverändert übernommen werden (bitte beachten Sie, dass bei Aktualisierung des Programms die Manifestdatei ggf. geändert werden muss!)
Nun öffnen Sie Ihr Projekt und fügen die Common Dialog Komponente in der Version 6.0 ein. Danach wechseln Sie ins Code-Fenster der Form und übernehmen folgende Deklaration:
' API-Deklaration, um die Initialisation der ' CommonControls zu ermöglichen Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
Falls Sie möchten, können Sie nun noch abfragen, ob das verwendete Betriebssystem Windows XP ist und die Entscheidung, ob die Controls im XP-Design angezeigt werden, dem Anwedender überlassen.
' Prüfen, ob WinXP If ... Then Call InitCommonControls End If
Platzieren Sie nun noch ein Objekt aus den Windows Common Controls auf die Form, kompilieren das Projekt und starten anschließend die so erstellte EXE-Datei. Und siehe da: die Controls/Objekte werden im WinXP-Design dargestellt
Nach ein wenig Arbeit sieht das ganze schon ziemlich anders aus.
Aber was ist das? Die Progressbar ist gar nicht im XP Design!
Hier muss noch ein wenig nachgeholfen werden. Fügen Sie die dem Projekt noch die Microsoft Common Controls 5.0 hinzu, und verwenden Sie die Progressbar daraus. Auf diese Weise kann dann nun auch die Progressbar im WindowsXP-Design bewundert werden.
Nun sind wir doch zufrieden oder?
Genau wie die Controls auf der Form werden nun auch MessageBoxen mit einem XP Button dargestellt.