GIF + TBitmap

websinh Messages postés 25 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 31 octobre 2012 - 20 sept. 2006 à 16:43
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 21 sept. 2006 à 14:38
Bonjours a tous,

Je suis désespéré. Je recherche a afficher un GIF tout cul sur une simple form.. J'ai tout essayé, winimage, cximage, bmpgif et plein dautres, mais toutes me donnes des erreurs différentes. J'aimerais simplement afficher un GIF dans une TBitmap sous borland C++ Builder...

est-ce que quelqu'un pourrait me sauver ^^

3 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
20 sept. 2006 à 23:19
Si borland accepte Gdiplus.lib (gdi de dotNet), il suffit de déclarer un
Image img(L"image.gif");
Graphics gr(HDC_DU_CONTROLE_TBITMAP);
gr.DrawImage(...);

// avec gestion des frames selon temps
// Attention : initialisation spéciale de gdi+

// sinon utiliser ATL
// atlimage.h (avec CImage qui supporte les gif)
// ceci dit je n'utilise pas borland
0
websinh Messages postés 25 Date d'inscription jeudi 9 septembre 2004 Statut Membre Dernière intervention 31 octobre 2012
21 sept. 2006 à 09:54
Hello,

je te remercie pour ta réponse. Je suis allé me renseigné sur ce GDI+ mais malheureusement il me donne des erreurs de compilation. Je me suis fier a cette page web : http://www.leunen.com/cbuilder/gdiplus.html

Il me sort tout un tas d'erreur de complilation tel que : lieur error : unresolved GdiPlusShutdown ...... etc

Est-ce que je fais quelque chose de faux ?

Voici mon code :

//---------------------------------------------------------------------------




#define STRICT
#include <windows.h>
#include
using std::min;
using std::max;
#include <gdiplus.h>


#include <vcl.h>


#pragma hdrstop


#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);


        Gdiplus::Graphics graphics(hdc); //Handle to the device context
        Load the image from a file
        Gdiplus::Image image(L"c:\sample.gif");
        graphics.DrawImage(&image, 0, 0, image.GetWidth(), image.GetHeight());




}
//---------------------------------------------------------------------------




__fastcall TForm1::~TForm1()
{


        //shutdown GDI+
        Gdiplus::GdiplusShutdown(gdiplusToken);




}
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
21 sept. 2006 à 14:38
Hello,
L'erreur que tu dis est que ton linkeur ne trouve pas gdiplus.lib.
J'imagine que borland ne réagit pas comme visual mais dans le code d'init, il te manque peut être quelquechose.
Voici les étapes principales (toujours utiliser UNICODE)

#define UNICODE
#include <windows.h>


// init GDI+


#include <gdiplus.h>
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")

// dans WinMain()
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

// fin
GdiplusShutdown(gdiplusToken);

Désolé de ne pas t'en dire plus.
0
Rejoignez-nous