我有一个黑白bmp文件。它的8 BPP的图片,大小为2048 * 2048。我创建了一个新的WTL项目,进入“资源” - >导入位图 - >选择我的bmp文件 - >给它MYBITMAPID
ID使用winapi无法获取资源位图大小
下面是代码:
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。
如何从资源加载位图?
使用[`GetObject()`](http://msdn.microsoft.com/en-us/library/aa932477.aspx)和`BITMAP`结构会带来好运吗? – 2011-12-15 07:18:40
@AndréCaron:谢谢你,它似乎有效! – fogbit 2011-12-15 07:42:13