Windows XP-Steuerelemente einsetzen

Veröffentlicht: 12. Apr 2004 | Aktualisiert: 29. Jun 2004

Von Mathias Schiffer

Windows XP stellt diverse Windows-Steuerelemente anders dar als ältere Windows-Versionen. Mit nur geringem Aufwand können Sie diese Darstellungformen auch in Ihrer Anwendung anbieten.

Die meisten der intrinsischen Steuerelemente im Angebot von Visual Basic waren immer schon Teil der jeweiligen Windows-Version, die für Visual Basic gesondert gekapselt wurde. Von der Textbox über Listenfelder bis zum MonthView-Steuerelement kapselte Visual Basic das Windows-Angebot auf für VB-Anwender sehr angenehme Weise.

Dementsprechend ist auch die Darstellung von Steuerelementen nicht gänzlich unabhängig von der Windows-Version, auf der eine Anwendung abläuft. Bereits mit Windows 2000 wurde jedermann offenbar, dass modern abgerundete Anwendungsfenster mit bunten Farben auch älteste Win32-Anwendungen umschmeichelten.

Auch wenn Sie unter Windows XP programmieren, können Sie diese neueren Steuerelemente jedoch nicht einfach per definitionem aus der Werkzeugleiste heraus verwenden. Das ist auch gut so, da Sie als Entwickler sich normalerweise nicht nur auf Windows XP einrichten, sondern auf möglichst viele vertretbar zu unterstützende Windows-Versionen.

Damit Ihre Anwendung unter Windows XP die neuen Darstellungsstile unterstützt, benötigen Sie ein so genanntes "Manifest". Dabei handelt es sich um eine Textdatei mit Eintragungen, die in XML-Struktur angelegt sind. Um die Textdatei zu einem Manifest zu machen, müssen Sie diese im Anwendungsverzeichnis Ihrer Anwendung abspeichern (üblicherweise ist das nach der Kompilierung das \BIN-Unterverzeichnis Ihres Projekts). Der Name der Manifest-Datei muss weiterhin dem Ihrer EXE-Datei entsprechen, die Dateinamenserweiterung jedoch muss auf ".manifest" lauten. Damit stellen Sie sicher, dass Windows diese Manifest-Datei beim Start der Anwendung als Konfigurationsdatei berücksichtigt.

Für die Darstellung Ihrer Steuerelemente im Windows XP-Stil sollte Ihre Manifest-Datei wie folgt aussehen:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>  
<assembly  
   xmlns="urn:schemas-microsoft-com:asm.v1"  
   manifestVersion="1.0"> 
 <dependency> 
  <dependentAssembly> 
 <assemblyIdentity 
   type="win32" 
   name="Microsoft.Windows.Common-Controls" 
   version="6.0.0.0" 
   publicKeyToken="6595b64144ccf1df" 
   language="*" 
   processorArchitecture="x86" 
 /> 
  </dependentAssembly> 
 </dependency> 
</assembly>