9

ネイティブ Win32 アプリケーションのダイアログにアニメーション GIF を配置するにはどうすればよいですか?

ローディングインジケーターとローディングプロセスがあります。

ありがとう :-)

4

5 に答える 5

6

GDI+ がネイティブの win32 と見なされるかどうかは不明です。使用できる場合は、次の例を確認してください

于 2010-04-05T14:55:51.950 に答える
5

Animation Controlを使用できます。ただし、.gif を .avi に変換する必要があります。

于 2010-04-05T13:21:55.743 に答える
3

GdiPlus を使用すると、jpeg、gif (アニメーション)、png などのさまざまな画像形式を簡単に読み込むことができます。

このコードは、画像の単一フレームを 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;
}
于 2010-04-06T09:51:40.727 に答える
0

タイマーを実装して表示内容を変更するのは非常に簡単です。テキストを含まないテキストブロックを設定し、背景色を付けてサイズを変更するだけです。オーバーヘッドがほとんどない、拡大する色付きのバーのように見えます。

于 2010-04-05T19:03:55.873 に答える
0

あなたはこれに厳しい時間枠を持っているので、私はwin32でGIFをアニメーション化するための実用的な例を探しました.cplusplus.comで素敵な実装を見つけました.

これは、Juan Soulie によるGIF View [直接リンク] と呼ばれています。

于 2010-04-05T13:50:37.703 に答える