Comment puis-je mettre un GIF animé dans ma boîte de dialogue dans mon application native Win32?Image animée dans Win32
J'ai un indicateur de chargement, et un processus de chargement.
Merci :-)
Comment puis-je mettre un GIF animé dans ma boîte de dialogue dans mon application native Win32?Image animée dans Win32
J'ai un indicateur de chargement, et un processus de chargement.
Merci :-)
Vous pouvez utiliser le Animation Control. Vous devriez convertir votre .gif en .avi cependant.
Depuis que vous avez un délai serré sur celui-ci j'ai cherché un exemple de travail pour animer des gifs sur win32 et j'ai trouvé une bonne implémentation sur cplusplus.com. Il est appelé GIF View [lien direct] par Juan Soulie.
Vous ne savez pas si GDI + peut être considéré comme natif win32. Si vous pouvez l'utiliser, vérifiez l'exemple suivant: CodeProject
Il est assez simple d'implémenter une minuterie pour modifier ce qui est affiché. Vous pouvez définir un bloc de texte, sans texte, avec une couleur d'arrière-plan et simplement changer la taille. Il ressemblera à une barre de couleur en expansion avec très peu de frais généraux.
Son très facile à utiliser GdiPlus pour charger une variété de formats d'image, y compris jpeg, gif (animé), png et ainsi de suite.
Ce code montre comment charger rapidement une image unique d'une image dans un HBITMAP: -
#include <gdiplus.h>
#pragma comment(lib,"gdiplus.lib")
using namespace Gdiplus;
HBITMAP LoadImageWithGdiPlus(LPCTSTR pszPngPath)
{
Image image(pszPngPath);
int width = image.GetWidth();
int height = image.GetHeight();
BITMAPINFO bmi;
bmi.bmiHeader.biBitCount = 32;
bmi.bmiHeader.biClrImportant = 0;
bmi.bmiHeader.biClrUsed = 0;
bmi.bmiHeader.biCompression = BI_RGB;
bmi.bmiHeader.biHeight = height;
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biSize = sizeof (bmi.bmiHeader);
bmi.bmiHeader.biSizeImage = 0; //calc later
bmi.bmiHeader.biWidth = width;
bmi.bmiHeader.biXPelsPerMeter = 0;
bmi.bmiHeader.biYPelsPerMeter = 0;
BYTE* pBmp = NULL;
HBITMAP hbm = CreateDIBSection(NULL,&bmi,DIB_RGB_COLORS,(void**)&pBmp,NULL,0);
HDC hdc = CreateCompatibleDC(NULL);
HGDIOBJ hobj = SelectObject(hdc,hbm);
Graphics graphics(hdc);
graphics.DrawImage(&image,0,0);
SelectObject(hdc,hobj);
DeleteDC(hdc);
return hbm;
}
Le suivi est question « Comment convertir un fichier .gif à un .avi? » Incluez cela dans votre réponse et ce serait parfait. –
Depuis que Imagemagick a échoué, tout ce que je peux offrir c'est ce que google a soulevé. (ce qui n'est pas trop mal - j'ai cherché 'convertir gif en avi') Peut-être que quelqu'un d'autre a une bonne idée? – Fozi