begin process at 2012 02 10 23:33:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Affichage BMP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Affichage BMP

mardi 18 janvier 2005 à 10:24:59 | Affichage BMP

Chapi72

Bonjour,

je voudrais juste charger une image bmp et l'afficher à l'écran. Le problème se situe pour rendre compatible le dc bmp et le dc d'affichage. Voici mon code et les erreurs que celui-ci me done (je programme en VC++6.0) Merci d'avance.


void CAffichageBMPDlg::OnBitmap()
{
    HBITMAP hBitmap = (HBITMAP) ::LoadImage(AfxGetInstanceHandle(),"bacterie.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    if (hBitmap != NULL)
    {
        MessageBox("Image chargée","Information",MB_ICONINFORMATION|MB_OK);
    }
    else
    {
        MessageBox("Image non chargée!","Erreur",MB_ICONERROR|MB_OK);
    }
    m_bmpBitmap.Attach(hBitmap);

    BITMAP bm;

    m_bmpBitmap.GetBitmap(&bm);

    CPaintDC dc(this);
    CDC dcMem;

    dcMem.CreateCompatibleDC(dc);
    dcMem.SelectObject(&m_bmpBitmap);

    dc->BitBlt(10,10,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY);
}

--------------------Configuration: affichageBMP - Win32 Debug--------------------
Compiling...
affichageBMPDlg.cpp
H:\MES DOCUMENTS\VisualC\Janvier\AffichageBMP\affichageBMPDlg.cpp(194) : error C2664: 'CreateCompatibleDC' : cannot convert parameter 1 from 'class CPaintDC' to 'class CDC *'
        No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
H:\MES DOCUMENTS\VisualC\Janvier\AffichageBMP\affichageBMPDlg.cpp(197) : error C2819: type 'CPaintDC' does not have an overloaded member 'operator ->'
        c:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(1012) : see declaration of 'CPaintDC'
H:\MES DOCUMENTS\VisualC\Janvier\AffichageBMP\affichageBMPDlg.cpp(197) : error C2227: left of '->BitBlt' must point to class/struct/union
Error executing cl.exe.

affichageBMP.exe - 3 error(s), 0 warning(s)
mardi 18 janvier 2005 à 12:20:44 | Re : Affichage BMP

ymca2003

dc n'est pas un pointeur :

dcMem.CreateCompatibleDC(&dc);


dc.BitBlt(10,10,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY);
mardi 18 janvier 2005 à 15:19:58 | Re : Affichage BMP

Chapi72

Tout d'abord merci pour ta réponse.
Alors ça compile bien maintenant mais aucune image ne s'affiche!

La fonction appartient à une classe de type CDialog. L'erreur vient-elle de là ?

Merci d'avance
mardi 18 janvier 2005 à 17:50:05 | Re : Affichage BMP

bayeto

Membre Club

Il me semble que les CPaintDC s'emploient uniquement en reponse à un WM_PAINT, soit OnPaint dans ton cas.

Charge ton image dans une variable membre de ta classe fenêtre et peinds-la dans OnPaint.

Je pense que OnBitmap est la reponse à la commande IDC_BITMAP non? Si c'est le cas, essaye ca:

void CAffichageBMPDlg::OnBitmap()
{
   HBITMAP hBitmap = (HBITMAP) ::LoadImage(AfxGetInstanceHandle(),"bacterie.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    if (hBitmap != NULL)
    {
        MessageBox("Image chargée","Information",MB_ICONINFORMATION|MB_OK);
    }
    else
    {
        MessageBox("Image non chargée!","Erreur",MB_ICONERROR|MB_OK);
    }
    m_bmpBitmap.Attach(hBitmap);

}

void CAffichageBMPDlg::OnPaint()
{
   CPaintDC dc(this);
   //code par default de OnPaint

   if(m_bmpBitmap.GetObjectType() != OBJ_BITMAP)
      return;

   CDC dcMem;

   dcMem.CreateCompatibleDC(&dc);
   dcMem.SelectObject(&m_bmpBitmap);

   dc->BitBlt(10,10,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY);
   dc->DeleteDC();   
}



Cette discussion est classée dans : error, bmp, dc, hbitmap, affichagebmp


Répondre à ce message

Sujets en rapport avec ce message

Decouper un gos bmp en plusieur petit (par rapport au handle) ???? [ par SnOOpss ] Bonjour tout le monde !!Voila en fait pr un RPG mon moteur 2d utilise le procedure suivantefichierbmp[0] = LoadABitmap("wall.bmp");avec HBITMAP LoadAB inp et outp [ par eric ] J'ai un problème avec ces deux fonctions.Voici les messages que j'obtiens à la compilation:bmp.obj : error LNK2001: unresolved external symbol _outpbm DC to bmp [ par sebseb42 ] salut a tous,voila, j'utilise la fonction BitBlt pour faire une capture d'ecran, ca c'est cool, ca fonctionne, j'ai la capture dans un DC, mnt ce que HDC vers HBITMAP [ par julien_boss ] Bonjour,j'ai un DC, contenant un dessin..., je souhaite pouvoir transférer son contenu dans un bitmap de type HBITMAP, afin ensuite de la mettre dans redimenssion image avec hbitmap [ par glipper ] bonjour,j'ai reussi à charger une image depuis un fichier, et la faire apparaître dans un boutons (dans une dialogbox). J'ai donc procédé comme ceci : affichage de built en vc++ 6.0...incomprensible.... [ par ami2008 ] je traite un programme bmp.c(traitement d'image en language c) après l'opération de compilation ,il affiche 0 errors et 4 warnings donc pas de problèm Socket error 10054 : Grr Vista [ par xabila ] Bonjour, Vista me bloque mon reseau. Est ce qu'il y a qqchose à decocher qq part dans VISTA pour ne pas etre embetté? Merci ! SDL conditions affichage image [ par MattCand ] Bonjour à tous, je suis débutant je cherche un code SDL qui, pour un paramètre donné, va afficher la bonne image. Je me suis basé sur le code SDL de b j'ai un probleme (text en coleur) [ par zaitaahmed ] Bonjour, je suis etudiant dans la 1ere année université,j'ai un probleme dans ma Bibliothèque exactement le fichier ( conio.h ou conio.c),parce que j [Api Windows] [ par fender6 ] Salut, J'aimerais tracer une ligne dans ma fenêtre que j'ai définie comme ceci : ;) [code=cpp] HWND fenetre1 = CreateWindowEx(WS_EX_STATICEDGE, "


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,777 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales