Accueil > Forum > > > > Gestion des thèmes XP
Gestion des thèmes XP
vendredi 7 janvier 2005 à 02:39:14 |
Gestion des thèmes XP

Nebula
|
Bonsoir,
Vous avez peut-être (ou pas) remarqué ma dernière source sur les
richedits avec apparence XP. Je souhaiterais corriger un bug qui fait
qu'une application sans manifest (et donc, non censée utiliser les
thèmes XP) dessine malgré tout les richedits avec l'apparence XP, ce
qui fait tâche au milieu des autres composants...
D'après la MSDN, je devrais utiliser la fonction IsAppThemed et/ou
IsThemeActive. Je les ai donc importées et utilisées lors de la
réception du message WM_THEMECHANGED mais elles retournent toujours
TRUE, indifféremment avec ou sans manifest...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/userex/functions/isappthemed.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/userex/functions/isthemeactive.asp
Merci d'avance...
PS : rien à voir, mais çà serait bien de skinner cette boîte à partir
des couleurs du site, çà fait un peu tache ce bleu au milieu de ce...
euh, c'est quoi comme couleur d'ailleurs, les cadres de cppfrance ?
|
|
vendredi 7 janvier 2005 à 07:42:29 |
Re : Gestion des thèmes XP
|
vendredi 7 janvier 2005 à 11:49:23 |
Re : Gestion des thèmes XP

Nebula
|
Certes mais IsAppThemed, tu ne trouves pas que sa description ressemble
à ce dont j'ai besoin (et pourtant, elle renvoie toujours TRUE elle
aussi) ?
|
|
vendredi 7 janvier 2005 à 12:52:35 |
Re : Gestion des thèmes XP
|
vendredi 7 janvier 2005 à 13:04:32 |
Re : Gestion des thèmes XP

Nebula
|
Et elle renvoie TRUE que l'application utilise ou non un manifest (donc, avec ou sans thème activé)...
|
|
vendredi 7 janvier 2005 à 13:11:32 |
Re : Gestion des thèmes XP
|
vendredi 7 janvier 2005 à 14:01:27 |
Re : Gestion des thèmes XP

Nebula
|
Ben non, sans manifest seuls les bords de la fenêtre sont "skinnés",
les contrôles (boutons, etc) ne le sont pas sauf mon richedit qui est
là comme un blaireau avec les thèmes XP... et IsAppThemed renvoie TRUE,
même dans ce contexte.
Voici comment je gère :
case WM_THEMECHANGED:
if (hTheme != NULL) {
pCloseThemeData(hTheme);
}
if (pIsThemeActive != NULL && pIsThemeActive() != 0 && pIsAppThemed() != 0) {
hTheme = pOpenThemeData(hWnd, L"EDIT");
} else {
hTheme = NULL;
}
Les p*** sont des pointeurs de fonctions sur les fonctions d'uxtheme.dll, ils sont initialisés comme suit :
pIsThemeActive = (ITA) GetProcAddress(hUxTheme, "IsThemeActive");
pIsAppThemed = (IAT) GetProcAddress(hUxTheme, "IsAppThemed");
pOpenThemeData = (OTD) GetProcAddress(hUxTheme, "OpenThemeData");
etc...
Et que l'application intègre ou non un manifest, les richedits se dessinent avec le style XP...
|
|
vendredi 7 janvier 2005 à 14:11:08 |
Re : Gestion des thèmes XP
|
vendredi 7 janvier 2005 à 14:36:04 |
Re : Gestion des thèmes XP

Nebula
|
Bon, on va tout récapituler depuis le début...
Avec manifest : http://athanatos.free.fr/temp/RichXP/avec.gif
Sans manifest : http://athanatos.free.fr/temp/RichXP/sans.gif
Ces deux applications utilisent le code que j'ai donné plus
haut, la seule différence concerne la présence ou l'absence du manifest
dans les ressources. Et ce que je voudrais, c'est savoir comment m'y
prendre pour détecter si je dois tracer les richedits avec ou sans les
thèmes XP, de manière à assortir leur apparence aux autres composants
(comme le montrent les deux screens) que les thèmes soient activés ou
non (en fonction des paramètres de l'application et non de Windows).
C'est en cela que je pensais utiliser IsThemeActive (global) et
IsAppThemed (local), mais çà foire...
Pour le moment, j'utilise uxtheme uniquement si les thèmes XP sont
activés, sinon je laisse le richedit faire sa bordure par défaut. Cela
fonctionne très bien si l'utilisateur a désactivé les thèmes XP, mais
lorsqu'ils sont activés cela ne prend pas en compte le manifest, et
voilà tout le problème (sans compter qu'on peut forcer la désactivation
des thèmes XP dans le raccourci de l'application, je n'ai pas encore
testé çà).
Désolé si je te semble agressif, mais çà commence à m'énerver quelque peu de tourner en rond
|
|
vendredi 7 janvier 2005 à 14:47:11 |
Re : Gestion des thèmes XP

DARKSIDIOUS
|
Lol, je te comprends !
As-tu essayé la fonction GetWindowTheme ? Car appliqué à ton
richtextbox, peut-être qu'il pourrait te donner l'information
cherchée...
Sache en plus que le richtextbox n'est pas le seul dans ce cas là : le
listbox par exemple ou le textbox classique affichent leurs scrollbar
en thème XP alors que leur bordure reste à la norme Win98 ! Et là, ca
fait encore plus louche ;)
DarK Sidious
[Administrateur et responsable VB/API du site ProgOtoP]
|
|
Cette discussion est classée dans : asp, xp, library, msdn, thèmes
Répondre à ce message
Sujets en rapport avec ce message
RVA [ par AlexMAN ]
Bonsoir, J'ai un pb avec le param StreamDirectoryRva de ce lien msdn : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/min
Où trouver Dnsapi.lib [ par PRZYBYLSKI ]
Bonjour, Je vais poser sûrement une question bête mais je suis débutant dans ce langage. Et sur ce logiciel Visual C++6. Je cherche une librairie « Dn
ListView_SetItemPosition32 [ par larion ]
Bonjour, Ne maîtrisant pas bien l'anglais (msnd), je n'ai pas compris quelle était la différence entre - ListView_SetItemPosition - ListView_SetItemP
RECHERCHE PRO DU COM [ par BruNews ]
Salut,on recherche qqn qui saurait faire un plugin IE, une barre d'outils genre GoogleBar, cela pour Codes-Sources. Faut donc s'y connaitre en impleme
CRYPTUI.dll et gestion de certificats dans C++ et SDK [ par anix ]
Salut, dans un projet en Visual C++ en relations avec la gestion de certificats,tout va bien (càd en compil et en build) mais en éxécution il y a
récupérer le type de partition [ par deck_bsd ]
Bonjour à tous,Voila je cherche comment je pourrai récupérer le type de partition d'un volume (Principale, etendue ,...) . Suis-je sur la bonne voi av
Fonctionement de SHGetFolderPath [ par Sens0r ]
Bonjour,est-ce que quelqu'un pourrait me montrer dans un exemple comment la fonction 'SHGetFolderPath' fonctione?Voici le lien vers la msdn:http://msd
keybd_event [ par jereboss188 ]
Bonjour à tous,Pour commencer, merci d'avance au personnes qui pourront (ou tenteront de) repondre à ma question.Je développe en C++ un programme pour
WM_MOUSEWHEEL et XP [ par Pistol_Pete ]
Salut à tous Je cherche à gérer la molette de la souris dans mon application win32. Le message WM_MOUSEWHEEL correspond parfaitement à ce que je veux.
Thèmes XP [ par Nebula ]
Salut !Je souhaiterais utiliser les thèmes xp avec mes applications, j'ai donc créé un fichier .manifest comme ci-dessous (trouvé sur la msdn, je sais
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|