我有一个黑白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用于此操作。
如何从资源加载位图?
最佳答案
WTL为此提供了帮助者:
CBitmap Bitmap = AtlLoadBitmap(MYBITMAPID);
SIZE Extent;
BOOL bGetSizeResult = Bitmap.GetSize(Extent);
关于c++ - 使用WinAPI无法获取资源位图大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8516166/