![]()
今回はいきなり画像(jpegファイル)をウインドウに表示する処理を作る。
Visual Studio 2005の左側にある「ソリューションエクスプローラ」にある「ImageViewerView.h」をダブルクリックして開く。cppファイルではなく、ヘッダーファイルであることに注意。
![]()
もしもソリューションエクスプローラが見当たらない場合は、「表示」メニューから「ソリューションエクスプローラ」を選択すればいい。
![]()
ImageViewerView.hが開いた。今まで変更を加えていないので、ATL/WTLアプリケーションウイザードが自動生成したままになっている。
![]()
ここで、まずはファイルの先頭部分に3行追加する。ここでは画像の表示に「GDI+」と呼ばれるコンポーネントを利用する。これはそのコンポーネントを使うための定義になる。
GDI+を利用するにはgdiplus.hとgdiplus.libが必要なため、そのインクルードおよびリンク設定。「using namespace Gdiplus;」は名前空間の設定用だ。
#include "gdiplus.h" #pragma comment(lib,"Gdiplus.lib") using namespace Gdiplus;
![]()
次に赤枠で囲んだOnPaint関数の中に画像の読み込みおよび表示処理を追加する。ここでは「test.jpg」という画像ファイルを読み込み、ウインドウ内に元のサイズで表示している。
LRESULT OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
CPaintDC dc(m_hWnd);
//GDI+初期化
ULONG_PTR _nToken;
GdiplusStartupInput _sGdiplusStartupInput;
GdiplusStartup(&_nToken,&_sGdiplusStartupInput,NULL);
//画像読み込み
Bitmap* pImage;
Graphics cGraphics(dc.m_hDC);
pImage = Bitmap::FromFile(L"test.jpg",TRUE);
//画像表示
cGraphics.DrawImage(pImage,(REAL)0,(REAL)0,(REAL)pImage->GetWidth(),(REAL)pImage->GetHeight());
//画像開放
delete pImage;
//GDI+開放処理
// GdiplusShutdown(_nToken);
return 0;
}
![]()
ソースコードに必要な変更を施したら実行してみる。まずは「ビルド」メニューの「ImageViewerのビルド」からビルドする。
![]()
画面下部の「出力」ウインドウをチェックしてビルドが正常に終了したことを確認する。もしも失敗した場合はソースコードの変更部分を確認しなおす。
![]()
ビルドが正常に終了したら実行する。「デバッグ」メニューにある「デバッグ開始」を選択する。
![]()
これでプログラムが実行され、画像が表示されたウインドウが開いた。ここで読み込まれる画像ファイルはプロジェクトフォルダに保存された「test.jpg」になる。
次回はウインドウサイズに応じて画像を拡大・縮小表示する処理を追加しよう。
