Mit XP kommt ein neues Design und damit auch neue Möglichkeiten/Probleme diese in Ihre Anwendung zu integrieren. Wer bereits XP kennt, der weiss, dass neue Applicationen das neue Design nicht von selbst verwenden. Es muss erst eingebunden werden. Zustandig dafür ist die "ComCtl32.dll" die mit Windows XP in zwei Versionen ausgeliefert wird(die alte und die neue 6.0). Per Default wird die alte dll verwendet, weswegen auch die unter XP erzeugten Anwendungen das neue Design nicht einfach mitnehmen. Das Thema heute ist ein Workshop für schnelles Anwenden der "Windows XP Visual Styles" für VB6.
2 Dinge die wir benötigen!
Wir brauchen NUR EINE API - EIN EINZIGER API-CALL - und das Manifest, das, wie sollte es anders sein, im XML-Format vorliegen muss. Die genaue Spezifikation für das Manifest ist auf der Microsoft Seite zu finden. Diese ist so umfangreich und kompliziert.,dass es schwierig ist, durchzublicken:-) Also hier die vereinfachte Version dessen.
1. Code für Visual Basic
In der Visual Basic Application muss die API "InitCommonControls" ausgeführt werden und zwar einmal im "Form_Initialize"-Event der Start-Form. Dieser Aufruf gilt dann für die komplette Applikation und alle darin enthaltenen Formualaren!
Option Explicit Private Declare Function InitCommonControls Lib "comctl32.dll" () As Long Private Sub Form_Initialize() InitCommonControls End Sub |
Wenn Sie die Anwendung jetzt kompilieren sehen Sie nichts:-( Aber die Anwendung ist bereits auf das neue Design vorbereitet! Plazieren Sie noch ein paar Controls rein und kompilieren Sie die Anwendung.
2. Das Manifest
Wie schon erwähnt, das Manifest ist XML und das File muss Projekt-Dateiname + .manifest heissen; z.B. "Projekt1.exe.manifest". Ausserdem muss die Datei im selben Verzeichnis, wie die Anwendung enthalten sein! Dies ist genausten zu beachten!!!
Manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" name="ppedv.xptest.XP" processorArchitecture="X86" version="1.0.0.0" /> <description>Ein XP Test mit Visual Styles</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" language="*" processorArchitecture="X86" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" /> </dependentAssembly> </dependency> </assembly> |
PE-Explorer ein Manifest-Wizard.
Wer sein Manifest nicht selber schreiben will kann sich eine 30 Tage Test-Version von PE-Explorer runterladen. Im Recource-Editor befindet sich ein Manifest-Wizard, der das Manifest direkt in die Anwendung implementiert. Dies funktioniert allerdings NUR, wenn "InitCommonControls" im Code bereits verwendet wird! hier der Link...
http://www.heaventools.com/PE_Explorer_resource_XP_Wizard.htm TIP!!!
Verwenden Sie innerhalb von Frames eine Picturebox um die Designfehler mit Check/Options zu unterbinden!!!