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 :

[MFC] Débutant - Affichage d'une Bitmap sur un bouton


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 44
    Points : 21
    Points
    21
    Par défaut [MFC] Débutant - Affichage d'une Bitmap sur un bouton
    Bonjour,
    Ma question va sans doute paraitre un peu bête, mais je n'arrive pas à afficher une bitmap sur un bouton ... j'ai déjà fait l'opération avec des icones et cela fonctionne très bien, dans le cas d'une bitmap (BITMAP1), mon code compile et rien n'est affiché sur le bouton (bouton_1) ... aurais-je oublié quelque chose ? Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        CBitmap BitmapGenerique;
     
        BitmapGenerique.LoadBitmap(IDB_BITMAP1);
     
        m_hBitmap1 = HBITMAP( BitmapGenerique );
     
        m_bouton_1.SetBitmap( m_hBitmap1 );
    Si quelqu'un peut m'éclairer ... merci d'avance

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    Salut ,
    Utilise un CBitmapButton


  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 44
    Points : 21
    Points
    21
    Par défaut
    Humm ... pas douée la fille Il doit y avoir un truc que je n'ai pas bien compris dans MSDN ...
    J'ai refait mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CBitmapButton monBoutonBitmap;
     
    monBoutonBitmap.Create(_T("Mon bouton bitmap"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(10,10,100,30), this, 1);
     
    monBoutonBitmap.LoadBitmaps(IDB_BITMAP1, IDB_BITMAP1, IDB_BITMAP1, IDB_BITMAP1);
    ... et c'est pareil, rien ne s'affiche

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    bien,
    ton objet ne dois pas être local à la fonction mais à la classe ou alors utilise un pointeur.
    sinon quand celui ci sort de sa portée il sera detruit et dans le destructeur d'un objet dérivé de CWnd il y a DestroyWindow() ce qui semble normal pour un objet graphique ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    CWnd::~CWnd()
    {
    	if (m_hWnd != NULL &&
    		this != (CWnd*)&wndTop && this != (CWnd*)&wndBottom &&
    		this != (CWnd*)&wndTopMost && this != (CWnd*)&wndNoTopMost)
    	{
    		TRACE(_T("Warning: calling DestroyWindow in CWnd::~CWnd; ")
    		   _T("OnDestroy or PostNcDestroy in derived class will not be called.\n"));
    		DestroyWindow();
    	}
    //...............
    en prime si je ne me trompe pas tu dois avoir un message dans le trace debug le warning du code cité plus haut...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 44
    Points : 21
    Points
    21
    Par défaut
    Ok, on progresse ça parait tellement évident quand on te le dit ... merci beaucoup
    J'avais encore un souci : "mon bouton bitmap" s'affichait mais pas la bitmap ; j'ai remplacé le code par celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    monBitmapButton.Create(NULL, WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW, CRect(200,200,400,400), this, 1);
    monBitmapButton.LoadBitmaps(IDB_BITMAP1, 0, 0, 0);
    ... et ça a l'air ok !

    Encore merci

    PS : je pense que tu vas me revoir sur ce forum avec plein d'autres questions bêtes de débutante !!

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

Discussions similaires

  1. Affichage d'une légende sur un bouton
    Par bomehc dans le forum Composants
    Réponses: 2
    Dernier message: 30/04/2011, 01h10
  2. Pbs d'affichage d'une image sur un panel
    Par ysr1 dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/09/2004, 09h55
  3. [Débutant] Affichage d'une grille
    Par Mathieu.J dans le forum OpenGL
    Réponses: 25
    Dernier message: 13/06/2004, 19h38
  4. Affichage d'une bitmap et de l'heure
    Par nanarr dans le forum Assembleur
    Réponses: 14
    Dernier message: 16/04/2004, 22h39
  5. Réponses: 2
    Dernier message: 20/01/2004, 14h27

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