白黒 bmp ファイルがあります。これは 8 BPP 画像で、サイズは 2048 * 2048 です。新しい WTL プロジェクトを作成し、[リソース] -> [ビットマップのインポート] -> [bmp ファイルの選択] -> [ MYBITMAPID
ID ] を指定します。
コードは次のとおりです。
HBITMAP bm = ::LoadBitmap( _Module.GetModuleInstance(), MAKEINTRESOURCE(MYBITMAPID));
ATLASSERT(bm); // <--- Ok
SIZE sz;
BOOL res = ::GetBitmapDimensionEx(bm, &sz);
ATLASSERT(res); // <--- Ok
ATLASSERT(sz.cx && sz.cy); // <--- Not Ok
デバッガーは、両方のサイズが 0 であると言います。
私は試した
HBITMAP bm = (HBITMAP)::LoadImage( _Module.GetModuleInstance(), MAKEINTRESOURCE(MYBITMAPID), IMAGE_BITMAP, 0, 0, LR_SHARED | LR_MONOCHROME);
そして同じ結果を得ました。
サイズは CBitmap クラスで取得できましたが、winapi はこの操作のみに使用したいと考えています。
リソースからビットマップをロードするにはどうすればよいですか?