制作:KrK (Knuth for Kludge)
#include <windows.h> // Win32API
#include <gdiplus.h> // GDI+
#pragma comment(lib, "Gdiplus.lib")
using namespace Gdiplus;
//-------------------------------------------------
// GDI+を使ってHBITMAPを取得
// 作成 20140818 KrK
// 引数 filename:ファイル名
// 戻り値:ビットマップハンドル
//-------------------------------------------------
HBITMAP LoadByGDIPlus(WCHAR* filename)
{
HBITMAP hBmp = NULL; // ビットマップハンドル
GdiplusStartupInput gdiSI; // GDI+
ULONG_PTR gdiToken; // GDI+
// GDI+の初期化
GdiplusStartup(&gdiToken, &gdiSI, NULL);
// ビットマップ取得
Bitmap* pBitmap = Bitmap::FromFile(filename);
if (!pBitmap)
{
GdiplusShutdown(gdiToken);
return NULL;
}
// GDI+でビットマップハンドルを取得
pBitmap->GetHBITMAP(NULL, &hBmp);
// GDI+の後処理
delete pBitmap;
GdiplusShutdown(gdiToken);
// 返す
return hBmp;
}
HBITMAP hBmp; // ビットマップハンドル
WCHAR filename[_MAX_PATH]; // ファイル名
// ビットマップを読み込む
hBmp = LoadByGDIPlus(filename, color);
(中略)
// 開放
DeleteObject(hBmp);
最終更新:2023/04/29