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 :

Comment changer l'apparence d'une fenêtre


Sujet :

C++Builder

  1. #1
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut Comment changer l'apparence d'une fenêtre
    Bonjour,
    Je cherche à changer le style de ma fenêtre, je m'explique : lorsque le style du PC est défini comme style XP (fenêtre ronde et gros boutons ...), la taille de la zone utile est diminuée, hors j'en ai besoin à 100%.
    J'aurais souhaité savoir si quelqun connaissait une méthode pour changer le style de l'application, ou au pire du PC.

    Pour le moment, j'ai trouvé ca:
    http://msdn.microsoft.com/library/de.../xptheming.asp

    Mais apparament, cela nécessite l'utilisation de manifest (chose inconu pour moi) ou l'emploi de Uxtheme.h qui me génère 2 erreurs sur un typedef enum non initialisé.

    Des idées, des conseils, je suis preneur de tout ce qui peux faire avancer mon problème.
    Merci d'avance

  2. #2
    Membre actif Avatar de damienlann
    Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    293
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2005
    Messages : 293
    Points : 249
    Points
    249
    Par défaut
    Si j'ai compris tu veux viré les bords de ton application...

    Sur une Form, tu as la propriété borderstyle, tu la mets a bsNone.
    Si c'est pas ca, alors je n'ai rien compris de ce que tu veux.

  3. #3
    Membre habitué Avatar de Furlaz
    Homme Profil pro
    Responsable Qualité
    Inscrit en
    Mai 2006
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Qualité
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 210
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par damienlann
    Si j'ai compris tu veux viré les bords de ton application...

    Sur une Form, tu as la propriété borderstyle, tu la mets a bsNone.
    Si c'est pas ca, alors je n'ai rien compris de ce que tu veux.
    Je ne pense pas que ce soit ce qu'il cherche

    Il veut changer TOUT le style de la fenetre et pas la bordure, enfin je pense.

    En tout cas désolé mais je ne vois pas du tout comment faire ca

  4. #4
    say
    say est déconnecté
    Membre éprouvé
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 258
    Points
    1 258
    Par défaut
    euh...pour UxTheme.hpp..précise l'erreur, je pense pouvoir t'orienter

  5. #5
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Merci de m'avoir répondu aussi nombreux.
    Je ne cherche pas à supprimer le bord, mais changer le style. Un peu à la manière du clic droit sur le bureau | propriétés, et sur l'onglet apparence changer le style XP en style windows classique au moins pour ma fenêtre.

    Pour l'erreur, la voici:
    Need an identifier to declare
    pour le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef enum THEMESIZE
    {
        TS_MIN,             // minimum size
        TS_TRUE,            // size without stretching
        TS_DRAW,            // size that theme mgr will use to draw part
    };
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    typedef enum PROPERTYORIGIN
    {
        PO_STATE,           // property was found in the state section
        PO_PART,            // property was found in the part section
        PO_CLASS,           // property was found in the class section
        PO_GLOBAL,          // property was found in [globals] section
        PO_NOTFOUND         // property was not found
    };
    Le truc, c'est que je pense qu'il faut que le premier énuméré est une initialisation genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef enum THEMESIZE
    {
        TS_MIN,=0           // minimum size
        TS_TRUE,            // size without stretching
        TS_DRAW,           // size that theme mgr will use to draw part
    };
    Mais je n'ai pas trop envie de modifier ce genre de chose dans les bibliothèques fournies. Mais si tu vois l'erreur à 100% say, je tente l'opération.

  6. #6
    Expert éminent sénior

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Normalement si le premiere énuméré n'a pas de valeur il est par default a 0, tu met une valeur au premier si tu veut commencé sur une valeur autre que 0

  7. #7
    say
    say est déconnecté
    Membre éprouvé
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 258
    Points
    1 258
    Par défaut
    Je m'en doutais...
    il faut juste ajouter des identifieurs ce qui revient à avoir ça dans le fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    typedef enum THEMESIZE
    {
        TS_MIN,             // minimum size
        TS_TRUE,            // size without stretching
        TS_DRAW,            // size that theme mgr will use to draw part
    }THEMESIZE;
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    typedef enum PROPERTYORIGIN
    {
        PO_STATE,           // property was found in the state section
        PO_PART,            // property was found in the part section
        PO_CLASS,           // property was found in the class section
        PO_GLOBAL,          // property was found in [globals] section
        PO_NOTFOUND         // property was not found
    }PROPERTYORIGIN;
    Voilou..ça devrait compiler.

    Bonne continuation
    Simon

  8. #8
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Ca compile bien Merci !

    Par contre, j'ai une erreur sur ma ligne suivante où je souhaite récupérer le theme de mon application:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        wchar_t* AppName;
        HTHEME hTheme = NULL;
        Application->Name.WideChar(AppName,Application->Name.Length());
        hTheme = OpenThemeData(Application->Handle,AppName);
    l'erreur me donne:
    Unresolved external 'OpenThemeData' referenced from C:\...
    Qu'est ce que je fais de mal?

  9. #9
    say
    say est déconnecté
    Membre éprouvé
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 258
    Points
    1 258
    Par défaut
    Ben c quoi OpenThemeData?? tu devrais pas avoir un objet, un compo qui pointe dessus?

  10. #10
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Nan en fait c'est une API Windows utilisant un .h de Windows
    Je pige pas pourquoi le lieur ne compile pas

  11. #11
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut Une autre soluce
    Perso, télécharge le soft SuiPack (il est payant, mais bon, tu peux trouver une solution miracle ), avec ce dernier tu peux changer le thème de ton application selon une large base de données de thème fournit et rendre ton appz indépendant du thème window. Du coup, tu n'aura pas de problème de place des curseur. En plus tu trouveras plein de composant super puissant.

    Je sais qu'il existe ces composants thèmes gratuit, si tu veux je peux essayer de retrouver l'adresse.

    ++

  12. #12
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Citation Envoyé par kurkaine
    Perso, télécharge le soft SuiPack (il est payant, mais bon, tu peux trouver une solution miracle ), avec ce dernier tu peux changer le thème de ton application selon une large base de données de thème fournit et rendre ton appz indépendant du thème window. Du coup, tu n'aura pas de problème de place des curseur. En plus tu trouveras plein de composant super puissant.

    Je sais qu'il existe ces composants thèmes gratuit, si tu veux je peux essayer de retrouver l'adresse.

    ++
    C'est interessant pour moi, mais pour un travail en entreprise, je ne peux pas trop me permettre ce genre de chose... Merci quand même de cette proposition. Pour les thème gratuit je ne pense pas en avoir l'utilité, mais merci de te proposer pour cette recherche.

    En fait, ce que je cherche précisément serait un API qui pourrait me permettre au moins de tester ce thème. Ca doit exister, mais je n'arrive pas à la trouver.

  13. #13
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    J'ai trouvé pourquoi je n'arrive pas à compiler, et que j'ai une erreur de linker:
    J'ai le .h dans ma librairie Borland, mais je n'ai pas le .lib donc forcément, ca marche beaucoup moins bien...
    Dès que cela fonctionne, je donne mon résultat !

    Merci encore à ceux qui m'ont aidé en postant sur ce forum.

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mars 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    utilier la pallette SUIPACK elle est riche de toutes les composants avec des théme extraordinnaire.
    essayer!

Discussions similaires

  1. Comment changer la couleur d'une fenêtre
    Par lucciana dans le forum Débuter
    Réponses: 2
    Dernier message: 24/02/2011, 23h10
  2. Réponses: 1
    Dernier message: 12/11/2007, 15h04
  3. comment changer le type d'une relation ?
    Par mitapi dans le forum Access
    Réponses: 5
    Dernier message: 21/05/2007, 11h29
  4. [FRAME] Comment changer la hauteur d'une frame ?
    Par iubito dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/10/2004, 11h50
  5. Changer l'icône d'une fenêtre à partir d'un .res
    Par henderson dans le forum C++Builder
    Réponses: 8
    Dernier message: 11/03/2003, 11h48

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