Buttons im XP-Stil

Neuer Look im Fenster

Bei Windows XP gibt es ein neues Look

Wenn Sie mit Visual Studio eine Anwendung programmieren, dann verwenden Sie die ganz normalen Kontrollelemente. Ihre Dialogboxen und Fenster haben dann den 'normalen' Windows-Look. Sie sind also grau und haben keine abgerundeten Ecken – lassen also ganz allgemein den Windows XP-Look außer Acht.

Gleichgültig, unter welchem Betriebssystem Sie Ihr Programm testen – die Controls sehen immer gleich langweilig aus. Zumindest teilweise, denn einige Teile Ihres Programms nehmen unter XP sehr wohl den XP-Look an: So sind beispielsweise die Buttons zum Maximieren und Minimieren des Fensters im XP-Stil gehalten – alles, was sich aber innerhalb des Fensters befindet, wird im 'alten' Stil gezeichnet. Das beruht auf der Aufteilung der Form. Jede Form, bzw. jedes Fenster, ist in einen Client und einen Non-Client Bereich aufgeteilt. Zur Non-Client Area gehören die Titelzeile, der äußere Rahmen des Fensters, sowie alle Scrollbars, die zum Hauptfenster gehören und nicht von Hand in der Client-Area platziert wurden. (Solche Scrollbars sind bei Windows.Forms- Programmen gar nicht mehr möglich, wenn Sie aber Ihr Programm mit VC7 erstellen, geht das natürlich noch.)

Das Betriebssystem ist für den optischen Stil der Non-Client Area verantwortlich. Das bedeutet, dass dieser Bereich Ihres Programms vom Betriebssystem gemalt wird. Darum verändern sich diese Fensterelemente auch, wenn Sie Ihr Programm auf einen Rechner kopieren, der mit Windows XP betrieben wird: XP malt diese Elemente nun mal anders als seine Vorgänger.

Es malt die ComCtrl32.dll
Wie ein Kontrollelement gezeichnet wird, ist in erster Linie davon abhängig, aus welcher DLL es stammt: Von allen Windows-Kontrollelementen gibt es verschiedene Versionen, die in unterschiedlichen DLLs untergebracht sind. Die DLL hat dabei immer den gleichen Namen, nämlich 'ComCtrl32.dll' (Common Control 32.dll), aber unterschiedliche Versionsnummern. Diese DLL war früher einmal redistributable, das bedeutet, Sie konnten diese DLL zusammen mit Ihrem Programm ausliefern. Das hatte den großen Vorteil, dass Sie immer sicher sein konnten, die richtige Version der DLL auf den Rechnern der Anwender Ihres Programms zu wissen.

Seit Windows XP – oder besser: Seit Version 6.0 der Common Controls darf die ComCtrl32.dll aber nicht mehr weitergegeben werden. Das Resultat davon ist, dass Ihr Programm mit der Version der DLL klarkommen muss, die auf dem Zielsystem vorliegt. Nachdem die letzte Variante dieser DLL die Version 5 war, geht Visual Studio davon aus, dass Sie Ihr Programm für diese Version der DLL programmieren, denn schließlich ist das die einzige Version, von der garantiert werden kann, dass sie auch auf den Zielsystemen vorliegt. Das kann man aber umgehen – wie, dazu später mehr.

Artikel kommentieren