• ベストアンサー

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

  • MFCで画像を表示させているのですが、透過表示する方法がわかりません。

    VC2005のMFCで画像を表示させているのですが、透過表示する方法がわかりません。 OnDraw(CDC* pDC) で、#include <atlimage.h>として、 CImage img; img.Load( "test.gif" ); CDC* pDCImg = CDC::FromHandle( img.GetDC() ); pDC->BitBlt( 60, 10, img.GetWidth(), img.GetHeight(), pDCImg, 0, 0, SRCCOPY ); img.ReleaseDC(); すればGIF画像が表示されましたが、このGIG画像は透過GIFですが そのまま表示されているので、背景が黒の場合透、明部分の白が見えて 四角い枠の画像となります。 GIF透過ファイルの場合、そのまま透過になる方法や、何か手段を用いて透過をさせたいです。

  • 透過GIFが表示されないんですが・・・

    初めて自分のホームページに透過GIFを使い、いざアップロードしてみたら表示されていませんでした。他の普通の画像は問題なく表示されています。参考になるかと画像のプロパティを見たところ、使用不可とありました。透過GIFには使用できる環境が決まっているのでしょうか? 参考までに、OSはMEを使用、ブラウザはIE5.5です。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • 透過gif画像の上に文章を重ねるには?

    四角形でなく、変形した画像のぎりぎりまでhtmlで文字を入れたいのですが、透過gif加工した画像を使っても、文字が原画の四角形のところで分断されてしまいます。 透過済みのgif画像の透明部分に、htmlで書いた文字を重ねることはできないのでしょうか? 今はその画像の余白部分を拡大して、壁紙にしてhtml文字を重ねているのですが、機種によってかなりのズレが生じてしまい、何とかしたいのですが・・・。 どうか宜しくお願いします。

    • ベストアンサー
    • HTML
  • gifの透過モードについて

    透過gifと透過モードというのは違うものなのでしょうか? 「Netscape4.XXで透過モードのgifを表示しようとするとロードが終わらないので透過モードをやめてほしい」と言われました。 透過gifのことかなと思って画像を確認しましたが、透過にはなっていないように見えます。 「透過モード」とはなんでしょうか?

  • JPGにオンマウス動作で透過GIF画像や透過PNG画像を重ねたいのです

    JPGにオンマウス動作で透過GIF画像や透過PNG画像を重ねたいのです JPG にオンマウス動作で透過GIF画像や透過PNG画像を重ねたいのですが、良い方法はありませんでしょうか? 例えば、分かれ道を撮したJPG画像に、マウスのカーソルを合わせる(載せる)と、JPG画像の上に、矢印だけが描かれた透過GIF画像、もしくは透過 PNG画像が表示されるようにしたいのです。 現在はJPG画像に矢印を書き加えたものを、onmouseoverで差し替え表示をする方法を行っていますが、書き加えられた矢印などの画像はJPG圧縮や縦横サイズの関係でノイズが載ってしまい、イマイチきれいじゃありません。 マウスの動作で透過GIF画像や透過PNG画像を重ねたり、外したりできる良い方法があればお教えください。

  • イラストレーターで作るgif透過画像について、色々調べてやってみたので

    イラストレーターで作るgif透過画像について、色々調べてやってみたのですが思うように出来ません。バージョンはcs4です。 たとえば「黒背景に浮かぶロゴ」のgif画像で、使うときは後ろの黒背景を表示させないようにするにはどうすればいいでしょうか?

  • GIF形式の画像を透過形式にできる方法

    Win2000/xpで利用しています。 GIF形式の画像を透過できるとのことですが、その方法を 教えてください。 GIFで作った文字を、文字以外の白い部分を透過させたいのです。 ブラシ等で消すのではなく、文字以外はすべて透過させて、背景が見えるようにしたいのです。

  • 背景画像の上に透過GIF背景をのせる方法

    はじめまして。 メモ帳にHTMLタグ打ち込みでWEBページを作ってるのですが、 bodyで背景画像を指定し、その上に透過GIFをおき、さらにその上にテキストを表示させるにはどうしたらよいのでしょうか。 具体的には、「テキストを表示させるブロック(tableやdiv)の部分」を半透明の透過GIFをフィルターみたいにかぶせて、その上に書くテキストを見やすくさせたい、という動機です。 divのなかのstyle、またはtableでbackgroundを定義しても、もとのbodyの背景が反映されなくなってしまうのですよね。 一応、自分で考えた策としては ・ブロックの背景そのものを、ある程度薄い色に変えた画像を用意してそれをtableの背景にする というものがあるのですが、これはやはりつなぎ目の部分でズレてしまって見栄えがあまりよくないのです。 かなり細かいところにこだわりすぎな感じもするんですが、 ぜひとも叶えたいのでどなたか方法をご存知でしたら教えていただきたいと思います。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • ギャッ!!昨日から、~.gif画像(透過)が、変!!!

    WINDOWS98SEです。 昨日から、突然、透過した~.gif画像が、[PC上で普通に開く限りは正常に見えるのですが] HTML上で見ると(タグで、貼りつけると)、画像の中に、青い、ブツブツ・・点点が、いっぱあぁ~ ~いぃ!!表示されるのです!!!!(゜ロ゜)\(><)/助けて下さあぁ~~いぃぃ!!。・゜゜・(×_×)・゜゜・。

  • IrfanView・透過GIFの使い方

    先日、このコーナーで円形切抜きの件で回答いただき早速お教えいただいたIrfanViewで試行いたしましたが(インストール済み)、最後のところで目的を達することが出来ずにいますので、是非ともお教えいただけませんでしょうか(JAVAスクリプトは有効になっております)。 ペイントで円形に切り抜いた画像(この場合当然に選択された四角の枠内に円形画像があります)を説明の手順に従い、最後の透過する色を選択する場面で、円形画像外の枠内の白の部分を選択して保存した画像(B)を、別の保存画像(A)にフアイルから添付より添付しますと、円形画像外の白枠部分が透過されておらず白く囲まれた状態になっております。「透過GIF確認スクリプト」で確認しますと、透過GIF画像でないと表示されてしまいますので、どうも透過するGIF画像になってないようです。 どの辺りに注意し、可能にするポイントなどお教えいただきたいと思います。円形画像以外の白枠部分は透過できないのでしたら諦めざるを得ませんが。今回の目的は、集合写真などで欠席者を円形で囲み添付するのを目的にしております。

専門家に質問してみよう