OVH Cloud OVH Cloud

Interface Windows XP et Classic

4 réponses
Avatar
balmeyer
J'ai un soucis avec Visual Studio 2005, et je suis un peu d=E9concert=E9
:
Mon interface de developpement a une apparence "XP" (boutons arrondis
avec d=E9grad=E9 de gris), et lorsque je lance l'ampli (debug ou
release), je me retrouve avec une apparence "Windows Classic" (boutons
carr=E9s, et uniform=E9ment gris).

Ce ph=E9nom=E8ne ne s'est pas produit avec un autre projet. J'ai cherch=E9
dans les propri=E9t=E9s et la configuration du projet, et franchement, je
ne vois pas ce que j'ai pu bidouiller pour en arriver l=E0 ! :)
Quelqu'un peut-il m'=E9clairer l=E0 dessus ?
Merci par avance !

4 réponses

Avatar
sdaa
Application.EnableVisualStyles() dans le main
Avatar
balmeyer
Merci beaucoup, j'ai bien fait de poser la question, je ne m'attendais
pas du tout à ça !

Ca veut dire que même sur un système XP, l'apparence de l'application
n'est pas celle d'XP par défaut ?
Avatar
Mehdi
On 8 Mar 2006 03:18:52 -0800, balmeyer wrote:

Merci beaucoup, j'ai bien fait de poser la question, je ne m'attendais
pas du tout à ça !

Ca veut dire que même sur un système XP, l'apparence de l'application
n'est pas celle d'XP par défaut ?



Non. La bibliotheque contenant les controles utilisateurs de Windows
s'appele Common-Controls et se trouve dans le fichier ComCtl32.dll. Windows
XP a introduits de nouveaux controles utilisateurs (Common-Controls version
6) mais reste également compatible avec les controles utilisés par les
versions précédentes (Common-Controls version 5). Les nouveaux controles de
Windows XP ont entre autre la particuarité d'etre "theme-aware", ils
peuvent modifier leurs apparences automatiquement en fonction du theme
utilisé par l'utilisateur.

Les applications qui souhaitent utiliser les nouveaux controles XP doivent
le spécifier explicitement. J'imagine que cela a été fait pour ne pas
"casser" les applications existantes qui ne sont pas au courant des
spécificités des controles de Windows XP. La maniere universelle de
spécifier que l'application souhaite utiliser les controles XP est de
placer un fichier NomDeLApplication.exe.manifest dans le meme repertoire
que l'executable de l'appli et qui contient:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.1.0.0"
processorArchitecture="X86"
name="Nom"
type="win32"
/>
<description>Description de l appli</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

Depuis la version 1.1 du .NET Framework il est également possible de
simplement appeler Application.EnableVisualStyle au lancement de
l'application.
Avatar
balmeyer
Merci encore Mehdi pour cette réponse détaillée !