第3回 ウインドウいっぱいに画像を表示する

ImageViewer03_01.gif
保存したプロジェクトを開くには、slnファイルをダブルクリックする。プロジェクト名(ソリューション名)がImageViewerの場合は「ImageViewer.sln」となる。

Visual Studio 2005では複数のプロジェクトからなるアプリケーションの作成にも対応する。
例えば"画像表示プログラム"と"インストーラー"からなる場合は、画像表示プログラム用のプロジェクトとインストーラー用のプロジェクトの2つのプロジェクトからなるソリューションということになる。
というものの簡単な開発であれば1つのプロジェクトしか扱わないことも多い。そのためソリューション=プロジェクトと考えていても差支えはない。


ImageViewer03_02.gif
slnファイルをダブルクリックするとプロジェクトが開いた。


ImageViewer03_03.gif
ソースコードを開くため、「表示」メニューの「ソリューションエクスプローラ」を選択する。


ImageViewer03_04.gif
そして左側のソリューションエクスプローラから「ImageViewerView.h」を探してダブルクリックする。すると前回までに作成したソースコードが開く。ここで右の赤枠で囲まれた画像表示用の処理を変更する。

ImageViewer03_05.gif このように変更する。 ここでRECT型は四角い領域を示す型で、GetClientRectによってクライアント領域の位置と大きさを取得している。クライアント領域というのはこのプログラムで言うと画像が表示されている部分に当たる。 そして取得したクライアント領域の横幅(右位置から左位置の差)と縦幅(下位置から上位置の差)の大きさで画像を表示している。
		//画像表示
		RECT	rect;
		GetClientRect(&rect);
		cGraphics.DrawImage(pImage,(REAL)0,(REAL)0,(REAL)(rect.right - rect.left),(REAL)(rect.bottom - rect.top));


ImageViewer03_06.gif
ソースコードの変更が済んだらビルドする。「ビルド」メニューの「ImageViewerのビルド」を選択する。


ImageViewer03_07.gif
ビルドが正常に終わったのを確認したら実行する。「デバッグ」メニューの「デバッグ開始」を選択する。


ImageViewer03_08.gif
すると画像がウインドウいっぱいに表示された。


ImageViewer03_09.gif
ウインドウのサイズを変更するとそれに従って画像の表示も変わる。しかし縦横比に関係なく画像を表示しているため、横長や縦長な表示になってしまうこともある。また、描画毎に画像ファイルを読み込んでいるためウインドウサイズを変更すると画像表示がちらつく。
次回は画像表示処理内容を見ながら表示毎に画像を読み込まないようにする。


プロジェクトファイルをダウンロード


カテゴリー「画像表示ソフトを作る」 のエントリー