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

MFC Discussion :

bouton tout pas beau


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut bouton tout pas beau
    hello !!

    quelqu'un peut il me dire quel est la couleur des boutons windows que l'on peut trouver par exemple dans les boites de dialogues..

    ceux que j'ai créé sont tout gris et c'est très moche... j'aimerai pouvoir leur donner un style plus "contemporain" !!

    Merci d'avance !!

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu trouveras surement ton bonheur avec GetSysColor

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Mais si tu parles des nouveaux boutons (le style XP) il faut passer par OpenThemeData pour tes boutons persos.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    oki donc, si j'utilise un truc comme GetSysColor(COLOR_WINDOW), ca me donnera un truc qui ressemble au bouton windows ??

    Je suis pas sur du color_window... Il n'y a rien qui concerne les boutons...

    De plus, ca ne va pa donner une couleur uni au bouton ? Je vais etre un peu chiant mais j'aurais voulu trouver le moyen de mettre un dégradé du meme style...


    Pour OpenDataTheme, je ne vos pas bien comment s'en servir...

    Merci pour votre aide !!

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pour les boutons, de mémoire: COLOR_3DDKSHADOW, COLOR_3DSHADOW, COLOR_3DFACE, COLOR_3DLIGHT, COLOR_3DHILIGHT.
    (du plus sombre au plus clair, à savoir que dans le thème par défaut, Light et HiLight sont tous les deux blancs).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    Oki alors voila ce que jai fais...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    case WM_CTLCOLORSTATIC:
          if(GetWindowLong((HWND)lParam, GWL_ID) ==
                      STATIC_BOUTON_LECTURE || GetWindowLong((HWND)lParam,
                      GWL_ID) == BOUTON_LECTURE)
          {
                SetBkMode((HDC) wParam, OPAQUE);
                SetBkColor((HDC) wParam, GetSysColor(COLOR_3DDKSHADOW));
                return (BOOL) GetStockObject(NULL_BRUSH);
          }
    Mais ca marche pas tres bien.. voir pa du tout !!

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    j'ai un peu du mal avec toutes les methodes !!

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    attends, je veux vérifier un truc : Tu utilises des boutons standard (la classe "BUTTON", le truc de base) ou tu as créé des contrôles persos dont tu veux les décorer pour qu'ils ressemblent à des boutons ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    j'utilise la classe "BUTTON" avec la fonction createwindows....

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    Voila comment je la créé...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    boutonQuitter = CreateWindow("BUTTON","Quitter",WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON | BS_CENTER, 0.85*taille_fenetre_principale.largeur, 0.75*taille_fenetre_principale.hauteur, 70, 90, hwnd,0,hinst,0);

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    Dsl, je l'ai mal écris...

    Voila comment je la créé...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    boutonQuitter = CreateWindow("BUTTON","Quitter",WS_CHILD | WS_VISIBLE
    | BS_DEFPUSHBUTTON | BS_CENTER, 0.85*taille_fenetre_principale.largeur,
    0.75*taille_fenetre_principale.hauteur, 70, 90, hwnd,0,hinst,0);

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Donc, oublie ce que j'ai dit : Le bouton possède déjà les couleurs retournées par GetSysColor().

    Si tu veux changer sa couleur, tu peux traiter le message WM_CTLCOLORBTN et lui retourner une brush de ton cru (ou dessiner toi-même son background et retourner GetStockObject(NULL_BRUSH)...)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    oki, je vais tenter de faire ca....

    La technique que tu m'as proposé tt a lheure, elle est censé marcher dans quel cas ??

  14. #14
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Dans le cas où tu te fais un contrôle perso et tu veux lui faire ressembler à un bouton pour qu'il s'intègre mieux dans le décor...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    oki, c'est un truc que j'aurais ben aimé savoir faire ca aussi.... (Si je sui lourd, hésite pas la le dire !! ) Y a tellemnet de trucs a apprendre ! Tu n'aurais pas un exemple de création d'un controle style bouton... ???

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    bon, jai fais ca, mais ca marche pas non plus....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    case WM_CTLCOLORBTN :
    	if((HWND)lParam == boutonQuitter)
    	{
    		printf("on est dedans\n");
    		return (LRESULT)GetSysColorBrush(COLOR_BTNFACE);
    	}

  17. #17
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ben non, les seuls contrôles que j'aie créés n'utilisent pas les couleurs standard (voir image). ou sont tous simple (ils ont juste le paramètre hbrBackground de leur WNDCLASS qui contient une couleur système).


    Edit (cross post): Je parie que si, ça marche, mais tu donnes au bouton la couleur qu'il a déjà...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    Oki, merci qd meme !!

    voici ce que je viens de faire et il n'y a tj pas de résultat.. en plus ca me fais des truc bizaroide sur mon IHM... J'ai mon popup menu qui s'affiche qd je lance mon prog... Ca le fais pas qd j'enleve ca...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    case WM_CTLCOLORBTN :
    	if((HWND)lParam == boutonQuitter)
    	{
    		printf("on est dedans\n");
    		return (LRESULT)RGB(20,0,0);
    	}

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 382
    Points : 80
    Points
    80
    Par défaut
    Bon pour les trucs bizaroide, c'est résolu, c parce que ca traitai pa tout les cas..

    Pour le return, je fais maintenant CreateSolidBrush(RGB(r, g, b); mais ca fais rien sur le bouton....

  20. #20
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    1°) boutonQuitter est valide ?
    2°) ne retourne pas directement CreateSolidBrush() : la brush retournée n'est pas détruite automatiquement. Retourne le handle mémorisé d'une brush créée une fois pour toutes.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. boutons radio pas beau et sélection de ligne
    Par Virgile le chat dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 26/11/2006, 10h20
  2. bouton "tout selectionner"
    Par tabulaire dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/08/2006, 12h05
  3. [DOM] Génération de XML tout pas beau :(
    Par scorpiwolf dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 23/05/2006, 15h49
  4. Mon script fonctionne avec un bouton, mais pas avec l'image!
    Par julien.63 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/04/2006, 16h26
  5. Trait pas beau
    Par Steph82 dans le forum OpenGL
    Réponses: 12
    Dernier message: 07/12/2003, 00h26

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