IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

SetWindowTheme


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Par défaut SetWindowTheme
    J'aimerais utiliser l'API SetWindowTheme avec BCB6 pour desactiver la gestion de theme XP sur un composant classique windows.

    Cependant j'ai un probleme de linker :

    [Linker Error] Unresolved external 'SetWindowTheme' referenced from MonAppli.obj

    et je ne sais pas ce qu'il faut installer pour utiliser cette Api;

    tout indice ou même petite piste sont les bien venus....
    merci ...

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2002
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 23
    Par défaut
    Je ne suis pas sûr que SetWindowTheme te permette de désactiver la gestion des thèmes XP, mais en tout cas pour l'utiliser, tu seras obligé d'inclure le header suivant "uxtheme.h" (voire la bibliothèque "uxtheme.lib"). Cette méthode n'est utilisable qu'à partir de WinXP.
    Je te laisse consulter l'URL sur le site de microsoft :
    http://msdn.microsoft.com/library/de...indowtheme.asp
    Si tu cherches des infos sur l'API Windows, une seule adresse :
    http://msdn.microsoft.com

  3. #3
    Membre expérimenté
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Par défaut
    Oui bien sur

    c'est donc la premiere adresse que j'ai consulté , la première référencé par google d'ailleurs, et la première que j'utilise pour me renseigner sur les api ....

    et j'ai bien inclu uxtheme.h ....c'est pourquoi

    je n'ai pas d'erreur de compilation

    mais

    une erreur de linker !!!!!!


    Je ne suis pas sûr que SetWindowTheme te permette de désactiver la gestion des thèmes XP

    C'est pourtant la définition que donne le msdn :

    Causes a window to use a different set of visual style information than its class normally uses.
    ...sur un composant specifique , en passant en parametre son Handle

    Le nom de la fonction n' est il d'ailleurs pas parlant ? SetWindowTheme

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Il faut linker avec UxTheme.lib, ce n'est peut-être pas fait par défaut avec C Builder. Rajoute-le dans les lib.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Membre expérimenté
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Par défaut
    Merci beaucoup Trap D

    grâce à toi j'ai pu débloquer mon probleme...
    j'avais bien uxtheme.h(provenant peut être de ThemeManager) mais pas uxtheme.lib...

    après avoir télécharger le Microsoft SDK PlatForm , un petit réarrangement dans uxtheme.h et coff2omf sur uxtheme.lib,
    j'ai incorporé uxtheme.lib à la compilation et là miracle ...

    SetWindowTheme fonctionne bien ce qui m'a permi de désactiver
    le theme Xp sur une toolbar :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void __fastcall TForm1::FormShow(TObject *Sender)
    {
           SetWindowTheme(MyToolBar->Handle,NULL,(wchar_t *)"");
    }
    (NB: si on met NULL comme dernier parametre ça ne fonctionne pas)

    ...tandis pour la désactivation des thèmes XP sur certains composants VCL(TChart,etc..) j'utilise ThemeManager ( qui lui par contre ne prend pas en charger les composants issus directement de windows (TCheckBox,TButton,TToolBar,etc..)

    Merci encore à toi ...

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo