Developpez.com - C
X

Choisissez d'abord la catégorieensuite la rubrique :



C++ Builder :
Donner le style XP à vos applications.

Par CGi

Le 9 septembre 2004





Introduction :

Cette article a pour but de vous montrer comment mettre votre propre fichier manifest dans les ressources de vos applications, afin de leur donner le style graphique de Windows XP, sous Windows XP bien sûr.


Mise en application :

Pour donner le style des thèmes XP à vos applications, il faut leur associer un fichier xml appelé "manifest", dont voici un exemplaire ci-dessous :

manifest.xml :

<?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.YourApplication" type="win32"/>
  <description>Description de votre application ici.</description>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls"
                                   version="6.0.0.0" processorArchitecture="X86"
                                publicKeyToken="6595b64144ccf1df" language="*"/>
    </dependentAssembly>
  </dependency>
 </assembly>

Ce fichier comporte des informations sur votre application, notamment son identité dans les attributs de l'élément assemblyIdentity, sa description dans l'élément description que vous pouvez remplir avec les données concernant votre application. L'élément important pour donner le style XP est l'élément assemblyIdentity de l'élément dependentAssembly de l'élément dependency. Il fournit les informations pour trouver l'assembly fournissant les contrôles au style XP. Il ne doit donc pas être modifié. Pour information les assemblies sont des dlls spécifiques à la plateforme DotNet. (C'est un avant goût de la gestion des dlls sur les futurs versions de Windows)

La première solution pour utiliser ce fichier manifest est de le joindre à votre application. Il suffit pour cela de lui donner le même nom que votre exécutable avec l'extension "manifest" et de le déposer dans le même dossier. Exemple : si votre exécutable se nomme "Project1.exe" le fichier manifest se nommera "Project1.exe.manifest".
Mais sûrement que vous préférerez qu'il soit intégré à l'exécutable. La solution est de le mettre dans ses ressources. Si vous avez fait des recherches sur le Net à ce sujet, vous avez sûrement trouvé à télécharger un fichier de ressource compilé (res) à lier à votre exécutable. Nous, nous allons aller un tout petit peu plus loin, nous allons le créer nous-même, ce qui vous permettra d'en personnaliser la partie concernant votre application.

Pour cela nous allons d'abord nommer le fichier manifest en "manifest.xml", puis nous créons un fichier script de ressources nommé "manifest.rc" dont le contenu sera le suivant :

manifest.rc :

1 24 "manifest.xml"

Ici l'identificateur de la ressource est "1" son type est "24" son contenu est celui du fichier manifest.xml
Il ne reste plus qu'à ajouter le fichier "manifest.rc" au projet et lancer la compilation. Le fichier "manifest.res" sera créé et lié à l'exécutable de l'application.

Pour être un peu plus conventionnel, on aurait pu nommer l'identificateur et le type de la ressource par leurs noms. Normalement ils devraient être défini dans le fichier "winuser.h" mais sous C++ Builder ils ne le sont pas. Nous pouvons par exemple les définir dans un fichier entête nommé "manifest.h".

manifest.h :

#ifndef CREATEPROCESS_MANIFEST_RESOURCE_ID
    #define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#endif
#ifndef RT_MANIFEST
    #define RT_MANIFEST 24
#endif

Le script de ressources devient donc :

manifest.rc :

#include "manifest.h"

CREATEPROCESS_MANIFEST_RESOURCE_ID  RT_MANIFEST "manifest.xml"

Voilà vous êtes maintenant équipé pour donner du style (XP) à vos applications.



CGi

Avec la contribution d'Anomaly pour la relecture.


C/C++
  Les pointeurs du C/C++.   Les listes chaînées.             Liste simple.             Liste triée.             Liste double.   Les arbres.   Les tas.   Le C orienté objets ?

  1 - La fenêtre principale.   2 - Contrôles et messages.   3 - Les commandes.   4 - Dialogue std.   5 - Contexte de périph.   6 - Dessiner.   7 - Les ressources.   8 - Dialogue perso.   9 - Dialogue comm.   10 - Les accélérateurs.

Assembleur
  Assembleur sous Visual C++.

C++ BUILDER
  Trucs et astuces.   Composant.   TRichEdit.   TDrawGrid.   Application MDI.   TThread.   wxWidgets.   Style Win XP.

  Première application.   Construire un menu.   Dessiner.   Sisers, Timers...   Dialogues standards.   Dialogues perso.

DotNet
  Composant C# Builder.   Contrôle WinForm.   Application MDI.

Java
  Applet java.





Copyright 2002-2016 CGi - Tous droits réservés CGi. Toutes reproduction, utilisation ou diffusion de ce document par quelque moyen que ce soit autre que pour un usage personnel doit faire l'objet d'une autorisation écrite de la part de l'auteur, propriétaire des droits intellectuels.
Les codes sources de ce document sont fournis en l'état. L'utilisateur les utilise à ses risques et périls, sans garantie d'aucune sorte de la part de l'auteur. L'auteur n'est responsable d'aucun dommage subi par l'utilisateur pouvant résulter de l'utilisation ou de la distribution des codes sources de ce document.
De la même façon, l'auteur n'est en aucun cas responsable d'une quelconque perte de revenus ou de profits, ou de données, ou de tous dommages directs ou indirects, susceptibles de survenir du fait de l'utilisation des codes sources de ce document, quand bien même l'auteur aurait été averti de la possibilité de tels dommages. L'utilisation des codes sources de ce document vaut acceptation par l'utilisateur des termes de la licence ci-dessus.

Contacter le responsable de la rubrique C