XP Buttons im Luna-Gewand
-
Hallo,
wenn ich mit dem Resourceneditor Buttons, etc. erstelle sehen die Buttons leider nicht so aus, wie in der Voransicht, d.h. sie nehmen nicht den Luna-Look an. Wie gehtn das?
Danke schonmal im Voraus ...
-
Meinst du Buttons im XP-Stil? Wenn ja, dann benutze mal die Boardsuche. Irgendwo war dazu schon einmal ein Thread (weiß leider bloß nicht mehr wo).
Mfg Ominion
-
Nein, das meine ich nicht, also nochmal: Wenn ich mit dem Resourceneditor einen Button und wie die ganzen Steuerelemente heiszen in meinen Dialog reinziehe, sehen die im Editor auch aus, als ob sie das Luna-Design annehmen wuerden (vorausgesetzt der geneigte Programmierer hat Klickibunt aktiviert). Compilier ich nun meine Anwendung, schaue sie mir unter Klickibunt an, dann sehen die Buttons leider nicht aus wie das Luna-Design, sondern nehmen das alte Window-Design an (fuer die Juengeren von euch: Klassisches Design).
Ich dachte allerdings immer, wenn ich schon reine API programmiere, dann aendern sich auch die API-Elemente mit dem Design, das tun sie aber anscheinend nicht.
Meine Frage nun: Gibts da einen API-Aufruf, welcher die Luna-Buttons zum Vorschein bringt? Denn diese Dinger sind ja sicher vorgefertigte Objekte in Window, oder irr ich mich da?!
-
So ... Hat sich erledigt, es klappt nun ...
Tip fuer alle Interessierten: Es funktioniert ueber eine Manifestdatei! Wenn Window diese vorfindet, werden die Steuerelemente unter dem Luna-Design angepaszt, probiert!
-
Ja, so funktioniert das, die Manifestdatei muss dann dateiname.exe.manifest heissen.
Allerdings kannst Du die Manifestdatei auch als Resource in Dein Projekt einfügen, ich glaube die muss dann die ID 24 haben, das weiß ich nicht mehr genau und dann rufst Du im Programm InitCommonControlsEx auf. So reicht es, wenn Du eine exe auslieferst und die extra Manifest-Datei wird nicht mehr benötigt.
-
Genau so, also mal fuer alle die es interessiert.
1. Manifestdatei erstellen, die sollte wie folgt aussehen
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity processorArchitecture="x86" version="5.1.0.0" type="win32" name="Name des Autors"/> <description>Name des Programms</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="x86"/> </dependentAssembly> </dependency> </assembly>
2. Diese Datei in die Resourcen reinschmeiszen, hier per Editor einfach folgenden Code in die *.rc Datei hinzufuegen
1 24 "res/manifest.xml"
Bitte beachtet, in diesem Bsp. befindet sich die manifest.xml im Verzeichnis "res"
Grusz
PS: Vielleicht sollte man das zu den FAQs hinzufuegen ...
-
Ich finde diese Erklärung nicht genau genug.
Wo genau muss das in die res ?
Mit nem define davor?