如何用 IPicture 类 来显示图片呢?
我这个图片是一个Bitmap,以资源的形式保存在工程中。
并且它是一个BMP类型。
假设ID号是 IDB_BITMAP1。
我在加载的时候,使用的方法为:
1、FindResource
2、LoadResource
3、LockResource
我在用SizeofResource 的时候发现一个很奇怪的问题,
返回的大小,始终是比 真正的图片大小小 14个字节。
这14个字节正好是 BITMAP 的首部。
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;
而且返回的缓冲区也是 从 这14个字节后开始的,
这时候用 OleLoadPicture 肯定会失败。
这个是不是微软函数的BUG呢??
我后来将图片转成了JPG,然后再加载,图片能加载成功。
没有仔细分析为什么,但为什么BMP类型的就不行呢??
有没有网友发现过这样的问题的???
hInst = GetModuleHandle(NULL);
lpName = MAKEINTRESOURCE(IDB_BITMAP2);
lpType = RT_BITMAP;
hResInfo = FindResource(hInst, lpName, lpType);
if (hResInfo == NULL)
return false;
// Load the resource
hRes = LoadResource(hInst, hResInfo);
if (hRes == NULL)
return false;
// Lock the resource
lpRes = (char*)LockResource(hRes);