• ベストアンサー

VC++2005で画面上にGIF画像(透過あり)を表示させたい

VC++2005で画面上にGIF画像(透過あり)を表示させたいのですが、 簡単なサンプルはあるでしょうか? MFCの概念がいまいちわかっていなく、ごく最近 DDX/DDVとテキストボックスの文字表示がわかった程度です。 画像系は何がわかればよいのでしょうか?

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

VC2005以降なら CImageクラスを使えば割と簡単に表示可能ですよ #include "stdafx.h" #include <atlimage.h> void myFunc(CDC* pDC) {   CImage img;   img.load( "GIFのファイルパス" );   CDC* pDCImg = CDC::Fromhandle( img.GetDC() );   pDC->BitBlt( 0, 0, img->GetWidth(), img->Getheight(),     pDCImg, 0, 0, SRCCOPY );   img.ReleaseDC(); } といった具合で ...

kourei
質問者

お礼

すみません。Viewクラスでの描画で次のエラーが出ました。 void CgraView::OnDraw(CDC* pDC) { CgraDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: この場所にネイティブ データ用の描画コードを追加します。 CImage img; img.load( "C:\\VC8\\テスト\\VC8試作\\test\\ba.gif" ); CDC* pDCImg = CDC::Fromhandle( img.GetDC() ); pDC->BitBlt( 0, 0, img->GetWidth(), img->Getheight(), pDCImg, 0, 0, SRCCOPY ); img.ReleaseDC(); 1>------ ビルド開始: プロジェクト: gra, 構成: Debug Win32 ------ 1>graView.cpp 1>graview.cpp(60) : error C2039: 'load' : 'ATL::CImage' のメンバではありません。 1> c:\vc8\vc\atlmfc\include\atlimage.h(68) : 'ATL::CImage' の宣言を確認してください。 1>graview.cpp(61) : error C2039: 'Fromhandle' : 'CDC' のメンバではありません。 1> c:\vc8\vc\atlmfc\include\afxwin.h(492) : 'CDC' の宣言を確認してください。 1>graview.cpp(61) : error C3861: 'Fromhandle': 識別子が見つかりませんでした 1>graview.cpp(62) : error C2819: クラス 'ATL::CImage' にはオーバーロードされたメンバ 'operator ->' がありません。 1> c:\vc8\vc\atlmfc\include\atlimage.h(68) : 'ATL::CImage' の宣言を確認してください。 1> 代わりに '.' を使用しますか? 1>graview.cpp(62) : error C2232: '->ATL::CImage::GetWidth' : 左のオペランドが 'class' 型です。'.' を使用してください。 1>graview.cpp(62) : error C2819: クラス 'ATL::CImage' にはオーバーロードされたメンバ 'operator ->' がありません。 1> c:\vc8\vc\atlmfc\include\atlimage.h(68) : 'ATL::CImage' の宣言を確認してください。 1> 代わりに '.' を使用しますか? 1>graview.cpp(62) : error C2039: 'Getheight' : 'ATL::CImage' のメンバではありません。 1> c:\vc8\vc\atlmfc\include\atlimage.h(68) : 'ATL::CImage' の宣言を確認してください。 1>gra - エラー 7、警告 0

関連するQ&A