API Windows en C

Donner le style XP à vos applications

CGi

Donner le style XP à vos applications. ?

- Titre : API Windows en C

- Auteur : CGi

- Parution : 6 juillet 2005

- Mise à jour : 4 janvier 2013

- Licence : Copyright ® 2005 CGi. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Mise en application

I - Introduction

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. La copie d'écran ci-dessous est l'exemple de la barre d'état auquel nous avons donné le style XP.

II - 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 :

1. <?xml version="1.0" encoding="UTF-9" standalone="yes"?>

2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

3. <assemblyIdentity version="1.0.0.0" processorArchitecture="X86"

4. name="CompanyName.ProductName.YourApplication" type="win32"/>

5. <description>Description de votre application ici.

6. <dependency>

7. <dependentAssembly>

8. <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls"

9. version="6.0.0.0" processorArchitecture="X86"

10. publicKeyToken="6595b64144ccf1df" language="*"/>

11. </dependentAssembly>

12. </dependency>

13. </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-gout 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 « WinMain.exe », le fichier manifest se nommera « WinMain.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 sur le 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 notre application.

Pour cela nous allons d'abord nommer le fichier manifest en « manifest.xml », puis nous l'ajouterons au script de ressources :

1. 1 24 manifest.xml

Ici l'identificateur de la ressource est « 1 » son type est « 24 » son contenu est celui du fichier manifest.xml (mettre le chemin complet du fichier avec Dev-C++, même s'il ce trouve dans le même dossier).

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 la version de ce fichier jointe avec les compilateurs est souvent trop ancienne, ce qui fait qu'il ne comporte pas cette définition. Nous pouvons alors par exemple les définir dans un fichier entête nommé « manifest.h ».

manifest.h :

1. #ifndef CREATEPROCESS_MANIFEST_RESOURCE_ID

2. #define CREATEPROCESS_MANIFEST_RESOURCE_ID 1

3. #endif

4. #ifndef RT_MANIFEST

5. #define RT_MANIFEST 24

6. #endif

Et dans le script de ressources, nous l'appellerons alors par :

1. #include "manifest.h"

3. CREATEPROCESS_MANIFEST_RESOURCE_ID  RT_MANIFEST "manifest.xml"

Vous pouvez aussi modifier votre fichier « winuser.h ». Voilà nous sommes maintenant équipés pour donner du style (XP) à nos applications.

À vos PC.

CGi

Retour au sommaire.