Jolie interface graphique en VB

Jolie interface graphique en VB - VB/VBA/VBS - Programmation

Marsh Posté le 09-02-2005 à 08:22:14    

Salut,
 
Y a-t-il moyen, en VB, de faire de belles interfaces graphiques style win xp ... et plus genre win 95 ?
 
Merci d'avance.

Reply

Marsh Posté le 09-02-2005 à 08:22:14   

Reply

Marsh Posté le 09-02-2005 à 09:20:42    

En VB6 je crois pas :/ Et en .NET, faut un fichier .manifest pour activer les styles winxp...

Reply

Marsh Posté le 09-02-2005 à 09:21:50    

Quoique, les contrôles XP sont dans une dll, si t'inclus la dll dans la liste des contrôles, doit y avoir moyen... Je vais chercher laquelle c'est :)

Reply

Marsh Posté le 09-02-2005 à 09:27:14    

Ok, donc normalement c'est la ComCtl32.dll, version 6. A essayer. Faudra aussi essayer le logiciel sous d'anciens windows pour être sûr que ça marche avec l'ancienne version...

Reply

Marsh Posté le 09-02-2005 à 10:27:44    

et comment t'utilises ca :p:p :):)  
 
merci d'avance

Reply

Marsh Posté le 09-02-2005 à 10:30:13    

Ch'ais pas :D Essaye d'ajouter dans la liste des contrôle la bonne version... Maintenant comme dit, faut vérifier que ce soit possible ;)

Reply

Marsh Posté le 09-02-2005 à 17:49:39    

En réalité, c'est tout simple.
 Il faut créer un module dont la Sub sera nomée ' Sub Main () ' et devra être lancée au démarrage de l'application ( Projet > Propriétés de ... > objet de démarrage : Sub Main ).
Ce module contiendra le texte suivant :

Code :
  1. Option Explicit
  2. Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
  3. Public Sub Main()
  4.    InitCommonControls
  5.    ' Suite de votre code dans la Sub Main.
  6.  
  7. End Sub

En outre, un fichier de même nom que celui de l'exe doit être créé et avoir comme extension ' .manifest '. En clair, si l'exe se nomme ' projet1.exe ', le fichier devra se nommer ' projet1.exe.manifest '. Il devra se trouver dans le même répertoire que le fichier exécutable. Dans ce fichier voilà le code à trouver :

Code :
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  3. <assemblyIdentity
  4.     version="1.0.0.0"
  5.     processorArchitecture="X86"
  6.     name="nom_de_votre_projet"
  7.     type="win32"
  8. />
  9. <description>Description de votre projet.</description>
  10. <dependency>
  11.     <dependentAssembly>
  12.         <assemblyIdentity
  13.             type="win32"
  14.             name="Microsoft.Windows.Common-Controls"
  15.             version="6.0.0.0"
  16.             processorArchitecture="X86"
  17.             publicKeyToken="6595b64144ccf1df"
  18.             language="*"
  19.         />
  20.     </dependentAssembly>
  21. </dependency>
  22. </assembly>


 
Petite remarque : ce code provient du site www.vbaccelerator.com

Reply

Marsh Posté le 09-02-2005 à 17:52:08    

Ah, je pensais que ça marchait qu'en .NET le fichier manifest :)

Reply

Marsh Posté le 09-02-2005 à 20:40:03    

Normalement oui. ;)  
La solution que j'indique au dessus fonctionne si le fichier ' .manifest ' se trouve dans le même répertoire et porte le même nom. Dans le cas contraire, l'exe retrouve les aspects de Win 9x & co . Si par contre le fichier existe mais que vous n'y faites pas référence, le programme ne se lance pas.
 
Aussi, je n'ai jamais essayé, la copie de ' comctl32.dll ' dans le system de Win 9x peut peut être permettre l'affichage en style XP ... ( :??: )
 
Autre info, dans le répertoire de VB6, créez un fichier ' .manifest ' avec le code ci dessus et nommez le ' VB6.exe.manifest '. Lancez VB6 et admirez.  :D  
 
Note : lorsque vous compilez l'exe sans faire référence à ' comctl32.dll ', l interface 9x reprend le dessus ...

Reply

Marsh Posté le 09-02-2005 à 23:25:25    

Pour la copie de la nouvelle version de comctl32, c'est interdit :D On n'a pas l'authorisation de redistribuer la version 6 :/

Reply

Marsh Posté le 09-02-2005 à 23:25:25   

Reply

Marsh Posté le 11-02-2005 à 09:49:30    

interdit :d ?

Reply

Marsh Posté le 11-02-2005 à 09:57:44    

Oui ;) D'ailleurs je sais même pas si ça fonctionne, à essayer. Mais comme dit, t'as pas le droit :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed