重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VC++2005で画面上にGIF画像(透過あり)を表示させたいのですが、
簡単なサンプルはあるでしょうか?

MFCの概念がいまいちわかっていなく、ごく最近
DDX/DDVとテキストボックスの文字表示がわかった程度です。

画像系は何がわかればよいのでしょうか?

A 回答 (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();
}
といった具合で ...
    • good
    • 0
この回答へのお礼

すみません。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

お礼日時:2009/05/09 01:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!