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 :

Je ne peux pas afficher une mage bitmap dans mon picture control


Sujet :

MFC

  1. #1
    Inscrit
    Inscrit en
    Juin 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 161
    Points : 60
    Points
    60
    Par défaut Je ne peux pas afficher une mage bitmap dans mon picture control
    bonjour à tous,

    Je veux afficher des images bitmap dynamiquement dans un picture control.
    C'est a dire j'ai un combo box à partir du quel je choisi le nom de l'image que je dois l'afficher par la suite dans un picture control .

    Mais l'image ne s'affiche pas.

    Ci-dessous le code de mon application:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    void CAnyPictureControl::PrintBmp(HWND hWnd, LPCWSTR filename)
    {
      HBITMAP hBmp;
      HDC hDC;
      hBmp=(HBITMAP)LoadImage(NULL,filename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
      hDC=GetDC(hWnd);
      DrawState(hDC,NULL,NULL,(LPARAM)hBmp,NULL,0,0,0,0,DST_BITMAP);
      DeleteObject(hBmp);
      ReleaseDC(hWnd,hDC);
    }
    
    //Appel de la fonction d'affichage de l'image
      
      TCHAR *l_NameBitmap = NULL;
      string l_strNameBitmap = "";
      l_strNameBitmap = m_Name + ".bmp";
      l_NameBitmap = ConvertStringTchar(l_strNameBitmap);//Conversion du type string en TCHAR *
    
      m_StaticLogo.PrintBmp(::GetDlgItem(m_hWnd, IDC_STATICGB),l_NameBitmap); //m_StaticLogo est une instance de la classe CAnyPictureControl
    Merci pour votre aide

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2010
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 290
    Points : 719
    Points
    719
    Par défaut
    Je n'avais jamais vu la fonction DrawState avant, donc ce que je dis n'a pas forcément de sens, mais je me fie à la doc de MSDN :

    En premier on dirait que tu devrais spécifier le flag DSS_NORMAL en plus du DST_BITMAP, d'après la doc.

    Ensuite, as tu essayé de dessiner autre chose que ce bitmap, genre un appel à TextOut (), juste pour vérifier que ton code s'exécute correctement jusque là ?
    Enfin, tu peux aussi tester la valeur de retour de DrawState, pour vérifier une éventuelle erreur.

    Edit : A y réfléchir d'ailleurs, ton code manque cruellement de vérification d'erreur. Es-tu sûr que ça ne se dessine pas, ou bien que ça ne se charge même pas ? ou bien que le GetDC échoue ???

  3. #3
    Inscrit
    Inscrit en
    Juin 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 161
    Points : 60
    Points
    60
    Par défaut
    Merci pour la réponse phi1981

    J'ai essayé de voir le retour de la fonction DrawState est c'est true.
    Pour le test des cas d'erreur je ne trouve pas une idée pour les fonctions LoadImage et GetDC.
    Pour le TextOut () de même rien n'est affiché.

Discussions similaires

  1. Afficher une page HTML dans mon appli ?
    Par stuffy dans le forum Tkinter
    Réponses: 2
    Dernier message: 15/07/2008, 18h03
  2. Réponses: 4
    Dernier message: 02/07/2007, 19h01
  3. Réponses: 17
    Dernier message: 20/06/2007, 14h54
  4. Ne pas afficher une ligne selon une valeur
    Par uloaccess dans le forum Access
    Réponses: 3
    Dernier message: 18/11/2005, 14h04
  5. Réponses: 6
    Dernier message: 22/12/2004, 11h00

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