begin process at 2012 02 14 01:10:01
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > UTILISER LES STYLES XP EN VISUAL BASIC

UTILISER LES STYLES XP EN VISUAL BASIC


 Information sur la source

Note :
7,5 / 10 - par 6 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Niveau :Débutant Date de création :13/02/2002 Date de mise à jour :16/07/2004 23:00:06 Vu / téléchargé :14 568 / 2 175

Auteur : appstmd

Ecrire un message privé
Site perso
Commentaire sur cette source (27)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Utiliser les styles XP en Visual Basic

Introduction

L'arrivée du nouveau système d'exploitation de Microsoft, Windows XP, a aussi conduit à l'arrivée d'une nouvelle interface, qui se distingue des versions précédentes de Windows. Cette nouvelle interface touche aussi bien les fenêtre que les contrôles (barre d'outils, boutons, ...) .


Malheureusement, ceux qui ont essayé d'exécuter des anciennes applications sous Windows XP ont pu se rendre compte que les nouveaux styles n'étaient pas pris en compte, et l'application présentait une "vieille" interface du même style que Windows 98.

Utiliser les styles pour un programme non prévu pour Windows XP

En fait, pour profiter de la nouvelle interface, il est nécessaire de créer un fichier qui va accompagner le programme, pour signaler à Windows que cette application peut utiliser les nouveaux styles, et exécuter une fonction API au démarrage du programme pour initialiser les styles. Ce fichier porte le nom de l'exécutable suivit de l'extension ".manifest". Par exemple 'notepad.exe.manifest'. Ce fichier contient entre autres la version pour lequel il a été créé et la description du programme.

Pour essayer d'inclure les nouveaux styles, créons un nouveau projet Visual Basic qui contient quelques contrôles (boutons, ...) et compilons-le en exécutable avec comme nom projet1.exe. Si vous l'exécutez, il n'aura pas les nouveaux styles de Windows XP. Téléchargez le fichier manifeste qui va l'accompagner et placez-le dans le même dossier que le fichier compilé. Attention ! Pour que ceci fonctionne, il faut que le fichier .manifest porte le même nom que le fichier compilé qui l'accompagne (par exemple projet1.exe.manifest si votre exécutable porte le nom de projet1.exe), et doit se trouver dans le même dossier !
Pour initialiser les styles au démarrage de votre programme, utiliser le code ci dessous.

En compilant et exécutant le programme à nouveau, on se rend compte que Windows prend cette fois ci en compte la nouvelle interface.

Utiliser les styles sous Visual Basic

Mais un problème se pose encore : lors de la création de la feuille sous Visual Basic, celui-ci affiche les contrôles avec l'ancienne interface ; c'est pas très pratique, puisque nous sommes obligés à chaque fois de compiler l'application et de l'exécuter accompagnée de son fichier "manifest" pour tester les nouveaux styles.
Pour contrer ce problème, il faut "donner" à Visual Basic lui-même un fichier "manifest", qui lui permettra d'utiliser les nouveaux styles pour sa propre interface mais également pour la création de feuille !
Téléchargez le fichier manifest et copiez-le dans le dossier où est installé Visual Basic (par exemple C:\Program Files\Microsoft Visual Studio\VB98). Exécutez Visual Basic et ouvrez le projet précédent. Visual Basic affiche désormais les nouveaux style lors de la création de la feuille, mais également lorsqu'on exécute le programme sous Visual Basic. Il n'est donc plus nécessaire d'effectuer une compilation à chaque fois que l'on veut tester l'interface de notre application.

Si vous placez des frames dans votre feuilles qui contient des contrôles, notamment des coches ou des options, vous vous rendrez compte que Visual Basic les peint avec un fond noir, ce qui rend le contrôle illisible. Pour contrer ce problème, il est nécessaire de placer un autre contrôle conteneur, par exemple un contrôle PictureBox à l'intérieur de la frame, et placer tous les contrôles de le PictureBox. Il suffit ensuite de mettre la propriété BorderStyle à 0 pour "cacher" cette manip.

Pour aller plus loin

Si vous trouvez contraignant de distribuer vos exécutables accompagné d'un fichier "manifest", il est possible d'insérer ce fichier "manifest" dans les ressources du programme, soit à en utilisant l'éditeur de ressources de Visual C++ (celui de Visual Basic ne fonctionne pas), soit depuis un programme capable de modifier les ressources d'un exécutable, comme Ressource Hacker.
Il est nécessaire de placer ce fichier "manifest" avec un type 24 (et non "24") et un ID de 1. Par exemple si vous utiliser l'éditeur de ressource de Visual C++, cliquez sur Insert Resource puis cliquez sur le bouton Custom.... Dans la zone Resource Type, tapez 24 (sans guillements) et collez le contenu du fichier "manifest" (ouvert auparavant avec le bloc-notes par exemple). Affichez ses propriétés et changer  le ID en 1 (sans guillements). Enregistrez les ressources et compilez votre programme. Celui-ci s'exécute en intégrant les nouveaux styles de Windows XP sans nécessairement être accompagné de son fichier "manifest", qui est maintenant lié à l'intérieur de l'exécutable.
Pour illustrer ces manipulations, télécharger ce fichier et suivez les étapes :

1. Ouvrez le fichier "manifest" avec le bloc-note.
2. Utilisez l'éditeur de ressources de Visual C++ pour modifier les ressources du projet Visual Basic.
3. Cliquez sur le menu Insert puis Resource, puis sur le bouton Custom...
4. Entrez comme type de ressource : 24
5. Coller le contenu du fichier "manifest"
6. Fermer la ressource et modifier ses propriétés en mettant 1 dans l'ID.
7. Enregistrez la ressource et compilez votre fichier sous Visual Basic. L'exécutable supporte les nouveaux styles sans fichier "manifest" l'accompagnant !  

Source

  • ' Pour initialiser les styles, placer ce code à la déclaration de la feuille :
  • Private Declare Function InitCommonControls Lib "comctl32.dll" () As Long
  • ' Puis ce code en réponse à l'événement Initialise de la feuille :
  • Private Sub Form_Initialize()
  • InitCommonControls
  • End Sub
' Pour initialiser les styles, placer ce code à la déclaration de la feuille :

Private Declare Function InitCommonControls Lib "comctl32.dll" () As Long

' Puis ce code en réponse à l'événement Initialise de la feuille :

Private Sub Form_Initialize()

     InitCommonControls

End Sub
  

 Conclusion

Pour avoir plus d'informations et un article comportant des images, visitez notre page : http://www.atlence.com/programs/winxp_vb.php

Pour nous écrire (demande d'infos, ...) : programmation@atlence.com.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • Projet1.exeTélécharger ce fichier [Réservé aux membres club]20 480 octets
  • projet1.exe.manifestTélécharger ce fichier [Réservé aux membres club]691 octets
  • Projet1.RESTélécharger ce fichier [Réservé aux membres club]744 octets
  • vb6.exe.manifestTélécharger ce fichier [Réservé aux membres club]679 octets
  • XP.FRMTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 314 octets
  • XP.VBPTélécharger ce fichier [Réservé aux membres club]Voir ce fichier712 octets
  • XP.VBWTélécharger ce fichier [Réservé aux membres club]Voir ce fichier49 octets

Télécharger le zip


 Historique

16 juillet 2004 23:00:06 :
Modification de l'adresse pour l'article complet

 Sources du même auteur

Source avec Zip Source avec une capture CHANGER LE NOM DES FICHIERS !
Source avec Zip Source avec une capture CRÉER DES PROGRAMMES AU LOOK "OFFICE XP"
Source avec Zip Source avec une capture PROGRAMME POUR CHANGER DATE/HEURE DES FICHIERS

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN GIF ANIMÉ par Le Pivert
Source avec une capture GRAPH PHP COURBE DE CHARGE par s.defaye
Source avec Zip Source avec une capture BOULE DE CRISTAL par BLUEBIBUBBLE
VB6 - DÉPLACEMENT D'UN CONTRÔLE SUR UN SEGMENT DE DROITE DÉL... par ucfoutu
Source avec Zip Source .NET (Dotnet) APPLICATION DE DESSIN par fsafsafsaf

Commentaires et avis

Commentaire de Nox le 14/02/2002 02:49:28

wow ya plus de doc ke de code! ;p

comme jai dejas dit a lautre kia fait un code presque pareil... faudrait kekechose ki met les controls de winxp quand on a win98 !!

9/10 ton truc

Commentaire de Pekinio le 15/02/2002 16:17:14

ben le prob c que ca donne pas de soluce a mon souci ptaing...

regardez cette image : <IMG>http://pekinio.free.fr/divers/xpmenu.jpg</IMG>

je veux le meme resultat sous 9x...faisable? avec vb, hein...

Commentaire de appstmd le 15/02/2002 21:29:03

C'est koi ton pb Pekinio ?

Commentaire de TheBlade le 23/02/2002 15:02:13

Ce code est tres bien ! Le seul probleme pour moi, c'est qu'il ne s'applique qu'au elements de base d'un projet VB (TextBox, Checkbox...)
Si on essaye avec par ex : WINDOWS MICROSOFT COMMON CONTROLS 6.0...
Ben... Ca ne marche pas :(

Y aurait t'il un moyen pour que ca fonctionne ?
J'aimerai bien que mes onglets aient le style XP !
Merci

Commentaire de appstmd le 23/02/2002 19:56:04

Oui moi aussi j'ai le même pb. Si quelqu'ub a une solution........

De mon côté, je fais des recherches et dès que j'ai un truc, je le posterai

Commentaire de TAOTCrash le 23/06/2002 14:38:54

Il faut utilise Microsoft windows common controls 5.0
(comctl32.ocx)

Commentaire de ennixo le 26/08/2003 14:28:38

si vous voulez, vous pouvez faire mieux en ayant une app sans fichier .manifest qui prend le style XP. c'est simple : mettez le fichier .manifest dans les ressources de votre programme dans la rubrique MANIFEST. et hop vous aurez des apps au look XP sans fichier externe :)

Commentaire de titicar le 07/09/2003 21:32:02

Le problème quant à l'utilisation du Microsoft windows common controls 5.0, c'est que les prop de ListView, TreeView sont limitées par rapport à la version 6.
Personne ne connaitrait une version 6, Service Pack qq'chose qui soit compatble avec le look XP?
J'ai téléchargé le SP5 de VB, mais ça ne change rien à mon problème.

Commentaire de Fraggy le 16/12/2003 23:04:42

Excellente information et très utiles ! Je mets 10/10
J'ai par contre rien compris à l'astuce d'Ennixo "mettez le fichier .manifest dans les ressources de votre programme dans la rubrique MANIFEST."
J'ai cherché partout sans jamais trouver la rubrique MANIFEST, donc si il peut être plus explicite ce serait sympas.
Si quelqu'un d'autre le sait, il peut le faire sans problème ;)
Ce serait éffectivement mieux que d'accompagner l'executable d'un fichier Manifest et les solutions proposée par Appstmd, ne me conviennent pas vraiment étant donné que je suis sous VB6 (SP5).

Commentaire de ennixo le 17/12/2003 17:59:32

ben tu crée une donnée personalisée dans ta ressource et tu la nomme MANIFEST. dedans tu mets le fichier .manifest au lieu de le mettre dans le dossier de l'application et quand tu compile ton programme ça marche !
si tu veux, un logiciel permet d'ajouter le manifest en ressource des programmes déjà compilés : PE Explorer (www.heaventools.com)
voilà :)

Commentaire de Fraggy le 17/12/2003 21:00:00

Ennixo : je te remercie pour ces infos mais je ne comprends pas ce que tu appeles "Ma Ressource" :/ C'est quoi, une fonction ? Une Sub ?
Un module ? Une class ? Et ensuite je fais quoi ? Je colle le contenu du manifest dans cette ressource, c'est bien ca ?

Je suis désolé de te demander encore des précisions, mais il y a encore pas mal de terme que je maitrise mal. Puis tes précisions serviront aussi a ceux qui comme moi n'auront pas compris ;)
D'avance merci à toi ;)

Commentaire de ennixo le 18/12/2003 00:46:35

normalement dans le menu Projet tu as "Ajouter une ressource" sinon essaie de te renseigner, c'est sur tous les VB mais pas toujours facile à trouver par défaut... (n'hésite pas à utiliser la touche F1 ;)

Commentaire de Notorius le 29/04/2004 15:38:35

sympa comme code mais j'ai eu un probleme sur ma machine : losque je veux compiler mon programme avec la ressouce (je l'ai crée avec visual c++), il le compile sans probleme mais , a l'execution, il m'affiche un message d'erreur et me conseil de reinstaller mon application. D'ou peut venir ce probleme

Commentaire de pepsi le 08/06/2004 19:33:35

mais tu dis télécharger le fichier manifest ...
mais de où, où il est ce fichier la ...

Pi quel nom on lui donne précisément quand on veut le mettre pour que sa fonctionne avec VB

Commentaire de titicar le 09/06/2004 20:31:28

Bah, je sais plus où j'ai dl le fichier manifest dans les news de Microsoft.
Je peux t'envoyer sur le site 'http://www.atlence.com/index.php?page=prg_winxp' : il explique où déclarer er utiliser la Function InitCommonControls Lib "comctl32.dll" () As Long.

Le fichier manifest, si tu le trouve pas, est le suivant. Enfin c'est celui que j'utilise (il est p'tete pas tt à fait correct) :
<?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>
Pour rappel, ce fichier (simple ASCII, avec le bloc note par ex.) doit porter le même nom que ton application. Si cette dernière s'appelle 'MonAppli.exe', le fichier manifest s'appellera 'MonAppli.exe.manifest' et doit se trouver dans le même répertoire.

ATTENTION : Tous les controles VB ne sont pas compatibles avec le look XP. (voir ce ke j'ai écrit le 7/9/2003)

Commentaire de YannGotti le 19/07/2004 23:27:48

Mon pc est peut-être débile mais.......
Quand j'utilise InitCommonControls dans mes programme avec le fichier .manifest et tout le tra-la-la bein les controles «Options» sont tout noir... Comme s'ils avaient été au soleil un peut trop longtemps...

Y a-il une solution au blem?...

Commentaire de YannGotti le 19/07/2004 23:28:05

Mon pc est peut-être débile mais.......
Quand j'utilise InitCommonControls dans mes programme avec le fichier .manifest et tout le tra-la-la bein les controles «Options» sont tout noir... Comme s'ils avaient été au soleil un peut trop longtemps...

Y a-il une solution au blem?...

Commentaire de titicar le 20/07/2004 20:43:40

Spécialement pour YannGotti:
Rassure toi, ton PC n'est pas débile. C'est plutôt la compatibilité de Win XP avec VB6 (et autres) qui l'est! Et comme d'hab, on dit "Merci oncle Bill !".
Ton problème est connu de tt le monde (ou presque!).
Hélas, tu vas être obligé de créer une PictureBox sous tes contrôles 'options'. Va voir par exemple sur le site cité plus haut 'http://www.atlence.com/index.php?page=prg_winxp' au paragraphe 'Problèmes avec les cadres'.
Nota : pour les utilisateurs de VB.Net, ma version de manifest (voir au 09/06/2004) n'est pas d'actualité! En effet, le ListView prend la bonne apparence contrairement au VB6, mais le simple bouton de commande ne reprend pas ce look!

... Bon prog!

Commentaire de YannGotti le 21/07/2004 09:08:31

Merci titicar...
Créer une PictureBox sous les contrôles 'options'?... Je n'y aurais pas pensé... :-)

Commentaire de emap le 28/07/2004 15:06:33

juste une kestion qd meme...
parce que j'ai pas tout pigé avec WIn2000 ca peux marcher ? (OFFICE XP utilise bien ce genre de menu sous WIN2000, y'a peux etre moyen de récuperer un trca la non?)

Merci bcp

Commentaire de titicar le 31/07/2004 10:33:34

Hé non. Le princip des fichiers manifest ne fonctionne que sous Windows XP.

Commentaire de YannGotti le 31/07/2004 20:41:07

Ce qui veux dire que InitCommonControls fait partie de comctl32.dll de Windows XP uniquement alors pourquoi quand j'exécute le prog sous Win 95 la fonction ne créer pas d'erreur?!!

Commentaire de MadM@tt le 19/08/2004 01:48:21

Une question : si le fichier .manifest est indépendant du prog, sous des OS est ce que ça crée une erreur ?? et meme question si le manifest est dans les ressources du prog ??
merci
@ +
MadMatt

Commentaire de ratala le 17/11/2005 18:07:04

Est-ce que sa marche le manifest avec VB5 ??

Commentaire de ratala le 17/11/2005 18:12:38

Est-ce que sa marche le manifest avec VB5 ??

Commentaire de titicar le 17/11/2005 19:02:24

Pour RATALA : Il suffit d'essayer :-) Mais y a pas de raison pour que celà ne fonctionne pas, du moment que tu utilises Windows XP. En effet, ce n'est pas VB qui gère les 'manifest', mais Win XP. Mais c'est vrai aussi que tous les contrôles de VB ne fonctionnent pas avec le look XP (voir ce qui est écrit plus haut).

Commentaire de MadM@tt le 20/11/2005 19:22:23

On t'a déjà répondu ailleurs à la meme question Ratala : oui

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales