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

Cet 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.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. 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 :

 
Sélectionnez
<?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 dll spécifiques à la plateforme DotNet. (C'est un avant-goût de la gestion des dll sur les futures 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êmes, 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 leur nom. Normalement, ils devraient être définis 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 :

 
Sélectionnez
#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 :

 
Sélectionnez
#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.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

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.