- ベストアンサー
VC++2005で画面上にGIF画像(透過あり)を表示させたい
VC++2005で画面上にGIF画像(透過あり)を表示させたいのですが、 簡単なサンプルはあるでしょうか? MFCの概念がいまいちわかっていなく、ごく最近 DDX/DDVとテキストボックスの文字表示がわかった程度です。 画像系は何がわかればよいのでしょうか?
- みんなの回答 (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(); } といった具合で ...
お礼
すみません。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