• ベストアンサー

OleLoadPictureでgifを表示したい

API C/C++(非MFC)を使って C:¥MyPictre.gifの絵を表示させるときに 表示させるウィンドウhWのウィンドウ処理関数の 「WM_PAINT:」~「return 0;」 の間にどのように記述したらよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

http://www5.plala.or.jp/atata/com/chap8_5.html IPicture::Render()で描画します。 http://www5.plala.or.jp/atata/com/chap8.html をみて、全体をつかむことをお勧めします。

keyguy
質問者

お礼

ありがとうございます。 hFile=CreateFile("PictureX.gif",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); nFileSize=GetFileSize(hFile,NULL); hGlobal=GlobalAlloc(GPTR,nFileSize); ReadFile(hFile,hGlobal,nFileSize,&nReadByte,NULL); CreateStreamOnHGlobal(hGlobal,TRUE,&iStream); OleLoadPicture(iStream,nFileSize,TRUE,IID_IPicture,(LPVOID*)&iPicture); iPicture->get_Width(&lWidth); iPicture->get_Height(&lHeight); //iPicture->Render(hD,0,0,lWidth/32,lHeight/32,0,lHeight,lWidth,-lHeight,NULL); GetClientRect(hW,&rt); iPicture->Render(hD,0,0,rt.right-rt.left,rt.bottom-rt.top,0,lHeight,lWidth,-lHeight,NULL); CloseHandle(hFile); iPicture->Release(); GlobalFree(hGlobal); で一応描画できたのですがおまじないが多くて大変です。 IStream *iStream; OLE_XSIZE_HIMETRIC lWidth; OLE_YSIZE_HIMETRIC lHeight; IPicture *iPicture=NULL; と型宣言された変数が分かりません。 OLE_XSIZE_HIMETRICの構造 IPictureのメンバー関数の引数の意味 /32の意味 等々。

関連するQ&A