【C++自画コントロール】GDI+で画像を表示する方法

1269 ワード

アプリケーションを作成するときは、ウィンドウやコントロールに背景図を追加する必要があります.画像はBMP形式だけでなく、JPEG、PNG、TIFF、GIFなど他の形式もあります.では、jpg形式の画像を背景にするにはどうすればいいのでしょうか.
ここではGDI+を用いたが,その名の通りGDI+はGDIの最適化であり,GDIの基礎には「多様な画像フォーマットのサポート」を含む他の多くの機能が追加されている.
次に、MFCでどのようにGDI+で画像を表示するかを見てみましょう.
====================================================================================================================
一、まず「StdAfx.h」ヘッダファイルに静的リンクライブラリをロードする:
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#include "GdiPlus.h"
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")
#endif

「StdAfx.h」ヘッダファイルを使用しない場合は、次のコードを直接使用できます.
#include "GdiPlus.h"
using namespace Gdiplus;
二、**Appクラスまたは**Dlgクラスにメンバー変数を追加
public:
	GdiplusStartupInput m_gdiplusStartupInput; 
	ULONG_PTR m_gdiplusToken;

三、InitInstance()関数でGDI+を開く
GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL);

四、ExitInstance()関数でGDI+を閉じる
GdiplusShutdown(m_gdiplusToken);

五、画像資源の経路によって画像を表示し、例えば1つのOnPaint()関数の中で
Graphics graphics(this->GetDC()->m_hDC); 
Image image(L"res\\2013.jpg", FALSE);
graphics.DrawImage(&image,0,0);