KI JLI Master
Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 05.06.2004, 22:11 Titel: [Win32] Wie verwende ich den XP-Style in meinen Programmen? |
|
|
Frage:
Wie lasse ich die Steuerlemente meines Win32 Programms im Visual-Style von Windows XP erstrahlen?
Was kann ich tun? Ich bin so verzweifelt.
Antwort: (Visual C++)
Zunächst einmal erstellt man (z.B mit dem Notepad) eine Datei namens manifest.xml und speichert sie in den Projektordner.
Diese enthält folgenden Text:
Code: |
<?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="CompanyName.ProductName.YourApp"
type="win32"
/>
<description>Your application description here.</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
|
Anschließend importiere ich diese Datei in mein bestehendes Win32 Projekt:
Die Ressource bekommt den Namen IDR_MANIFEST und ihr Typ lautet RT_MANIFEST.
Als nächstes muss man resource.h öffnen und folgende Zeile ganz oben einfügen (der Index von IDR_MANIFEST muss 1 sein):
Code: |
#define IDR_MANIFEST 1
|
Noch eins: (zur Sicherheit )
Jetzt schließt man den Arbeitsbereich (sprich: das Visual Studio) um eine manuelle Änderung an der rc-Datei vorzunehmen.
Diese rc-Datei (im Projektverzeichnis zu finden; z.B YourApp.rc) öffnet man mit dem Editor.
Im Menü auf Bearbeiten>Suchen klicken und nach IDR_MANIFEST suchen.
Dort müsste diese Zeile zu finden sein:
Code: |
/////////////////////////////////////////////////////////////////////////////
//
// RT_MANIFEST
//
IDR_MANIFEST RT_MANIFEST "manifest.xml"
|
Bei Abweichungen eventuell anpassen.
Jetzt einfach das Projekt wieder öffnen, kompilieren und den XP-Style geniessen.
Bemerkungen:
Vergewissern Sie sich, dass unmittelbar nach dem Programmstart
Code: |
InitCommonControls();
|
aufgerufen wird.
Das Programm läuft jetzt sowohl auf einem Windows 98 Rechner (im "alten" Windows-Look), als auch auf Windows-XP (im XP-Look)
In der xml-Datei können Sachen wie "Your application description here" oder "CompanyName.ProductName.YourApp" bei Bedarf angepasst werden.
RT_MANIFEST ist in winuser.h als
Code: |
#define RT_MANIFEST MAKEINTRESOURCE(24)
|
definiert. |
|