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 :

Checkbox et image


Sujet :

MFC

  1. #1
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut Checkbox et image
    Bonjour,

    je voudrais remplacer par une image (enfin exactement 1 image pour chaque �tat) la case � cocher d'une checkbox. Je n'ai pas trouv� comment faire : est-ce que quelqu'un l'a d�j� fait et pourrait me dire comment proc�der ?

    Merci d'avance.

  2. #2
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    salut,

    pas de solution toute faite, il faut customiser le controle en r�definissant la fonction "Paint" ... c'est � dire, redessiner le controle toi meme, comme tu l'entends ...

    pour �a, il y a le style BS_OWNERDRAW et la m�thode CButton::OnDrawItem()

    mais il faudra aussi g�rer le dessin du texte ... pas simple si tu d�butes en MFC. (regarde aupr�s de la fonction DrawText() )

    regarde sur le net, il y a pleins de ressources sur le sujet, notamment ici : http://www.codeproject.com/KB/button...draw%20buttons

    tu devrais surement y trouver ton bonheur ...

    @+

  3. #3
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Le truc c'est que j'aimerai toujours pouvoir utiliser la fonction GetCheck().
    Si je suis oblig� de repartir d'un CButton basique et de refaire ce m�canisme je trouverai �a passablement moisi ...

  4. #4
    Membre chevronn� Avatar de stephdim
    Profil pro
    Inscrit en
    Ao�t 2007
    Messages
    462
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2007
    Messages : 462
    Par d�faut
    mais une CheckBox est un CButton ... c'est juste la fa�on de dessiner qui change. de meme pour un Radio button et un GroupBox
    la m�thode GetCheck() et SetCheck() est dispo.
    l'�tat du bouton (donc coch� ou pas) est fourni en param�tre � OnDrawItem() dans la structure DRAWITEMSTRUCT

    @+

  5. #5
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    J'ai donc surcharg� un CButton et red�finit la fonction DrawItem() afin de personnaliser mon affichage.
    Seul soucis si je cr�e mon bouton avec l'option BS_CHECKBOX, tout marche tr�s bien avec un affichage classique (que je ne souhaite pas garder au final). Mais si je rajoute l'option BS_OWNERDRAW, alors la fonction SetCheck() ne fonctionne plus ... c'est tout simplement incompr�hensible.

    En affichage classique :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    GetCheck(); -> 0
    SetCheck(1);
    GetCheck(); -> 1
    En affichage OWNERDRAW :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    GetCheck(); -> 0
    SetCheck(1);
    GetCheck(); -> 0
    Pour r�sumer en OWNERDRAW, bien que l'affichage se fasse comme je le souhaite, l'�tat ne change pas.

    Moi pas comprendre

  6. #6
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    la m�thode GetCheck() et SetCheck() est dispo
    apr�s tests et recherches il s'av�re que c'est faux : il faut les surcharger pour que �a marche et ajouter un attribut � la checkbox perso pour retenir son �tat.

    En clair il faut tout se refaire puis �a fonctionne

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Syst�me checkbox et image de validation
    Par drag0vich dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 4
    Dernier message: 13/11/2012, 18h17
  2. un checkbox en image
    Par kevinf dans le forum G�n�ral JavaScript
    R�ponses: 13
    Dernier message: 29/06/2008, 09h14
  3. Image diff�rente selon �tat du checkbox
    Par Marconico dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 11/12/2006, 15h12
  4. Grid avec CheckBox, Images, ...
    Par xenos dans le forum Delphi
    R�ponses: 6
    Dernier message: 04/07/2006, 11h54

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