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 :

Problème de redessin d'éléments d'une DialogBox


Sujet :

MFC

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut Problème de redessin d'éléments d'une DialogBox
    Bonjour,

    Alors je reporte le problème d'un post plus bas avec un titre spécifique :

    J'ai attaché à une scrollbar une variable de classe CNewStatic exactement comme pour les textes de ma boîte de dialogue.
    Je procède pareil que les textes dans OnInitDialog pour attribuer la couleur (un seul paramètre, le deuxième ne sert à rien dans ce cas, les valeurs par défaut suffisent) :
    m_staticSlider.SetBkColor(RGB(255,255,180));
    où RGB(255,255,180) correspond à la couleur jaune de fond de ma boîte de dialogue.

    Bien, alors le souci, c'est que quand j'ouvre ma boîte, la scrollbar est entourée de blanc au lieu d'être entourée de jaune, et que pour que ça soit bien entouré de jaune, je dois :
    - soit faire passer une autre page en avant-plan avant de revenir à mon logiciel
    - soit cacher la boîte par le signe "-" et la réouvrir .

    Quand elle se redessine comme ça, je retrouve l'apparence souhaitée, (mais pas quand la partie en cause disparaît de l'écran quand on déplace la boîte hors de l'écran, et réapparaît quand on redéplace la boîte dans la zone visible de l'écran, ce qui est curieux puisque cette opération redessine aussi la boîte).

    Et donc, puisque c'est une histoire de dessin, je pensais à OnPaint, mais non!


    Classe NewStatic :

    http://farscape.developpez.com/Samples/samplesdi.zip

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    je viens de relire plusieurs fois le post pour etre sur d'avoir compris ..
    je viens de faire l'essai rapidement chez moi la partie centrale de la scrollbar est bien colorée ,sauf les butons..


  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2002
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 39
    Par défaut
    ajoutes Invalidate(TRUE); apres le SetBk()

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    la fonction utilisée le fait deja .

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2002
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 39
    Par défaut
    est ce que t'en es sure parceque comme tu dis le ctrl n'est entoure de jaune que si tu le caches et le remontre ce qui revient dire que si le control est redessine

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    voila ce que j'obtiens:


  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2002
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 39
    Par défaut
    Joli dlg
    ou est le prob ??

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Citation Envoyé par Black_Daimond
    Joli dlg
    ou est le prob ??
    moi ? j'en ai pas ,c'est mister stof qui a un probleme

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    Ben moi ça couille

    Dans le doite, j'ai rajouté un UpdateData(TRUE) et Invalidate(TRUE)
    entre m_staticSlider.SetBkColor(RGB(255,255,180)); et le return TRUE; de ma fonction OnInitDialog() mais rien à faire, à l'apparition de la boîte, toutes mes couleurs sont bien en place sauf ce satané slider.

    Aucune piste alors?

  10. #10
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    slider ou scrollbar ? c'est pas pareil ..
    tu peux montrer ce que ça donne à l'ecran ?

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    Attendez, c'est même encore plus drôle que ça!!!!!!!!!!!

    J'ai 8 sliders et j'ai maintenant fait la même chose sur les 8 (jusque là, j'avais fait un test que sur le premier)


    --> au premier dessin de la boîte, il n'y a que le 2ième qui est nickel, les autres sont tous entourés de blanc (au lieu de gris par défaut, et de jaune comme je veux...)

    Si je redessine ma boîte comme j'ai dit précédemment (je rétrécit et jagrandit la boîte), le premier maintenant s'affiche bien aussi...et c'est tout!
    J'ai beau refermer et rouvrir autant de fois que je veux, les autres resteront blanc.


    Farscape, c'est sûrement un mystère de la classe CNewStatic ça, non? (mon niveau ne doit pas me permettre d'aller corriger ça, je vais voir).


    1ière apparition :



    Après redessin (une fois ou 1000 fois, c'est pareil) :

  12. #12
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    j'ai pas essayé sur un slider . (au debut tu as dis scrollbar ..)


  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    Je me suis peut-être planté un moment sur les noms, mais c'est le même élément que ton "appréciation globale des performance" : c'est un SLIDERCTRL

    Les photos n'ont pas l'air de s'afficher, c'est relou ça!

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    Je reviens sur le sujet pour dire que

    1°/ en bidouillant, j'ai trouvé une parade au problème (pas une "solution") :
    m_staticSlider.SetBkColor(RGB(255,255,180));
    m_staticSlider.ShowScrollBar(1,TRUE); //bidouille pour faire redessiner les scrollbars...
    m_staticSlider.ShowScrollBar(1,FALSE); //...car sinon la couleur d'entourage est blanche (au lieu de jaune!)


    2°/ Comment on fait pour un Check-Box Control?

    J'ai attribué une variable "Value" booléenne à mon check-control.
    Mais si je veux faire comme d'autres éléments statiques (texte donc ou slider Control maintenant que ça marche), Visual ne veut pas que je lui attribue une valeur de contrôle (Wizzard ne fait rien, et si je le fait manuellement, j'ai un ASSERT FAILURE).

  15. #15
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    2) change le nom de ton IDC_Check et refait un essai dans le wizard.

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    hum, effectivement, ça a résolu le problème

    'commence à me stresser Visual C++, il est bourré de bugs ma parole!!!!!!!!!!



    Voilà 2 problèmes résolus pour le moins de manière sunaturelle!

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

Discussions similaires

  1. STL, problème d'ajout d'élément dans une list.
    Par hyuga33 dans le forum SL & STL
    Réponses: 7
    Dernier message: 21/03/2011, 11h40
  2. Réponses: 0
    Dernier message: 13/12/2010, 09h34
  3. Réponses: 5
    Dernier message: 11/06/2007, 13h23
  4. Réponses: 7
    Dernier message: 14/05/2007, 00h53
  5. Réponses: 12
    Dernier message: 04/03/2007, 11h43

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