我在程序中这样用的:
HBITMAP hBitmap;
hBitmap = ::LoadBitmap(NULL,MAKEINTRESOURCE(IDB_SHINE));
但是这样hBitmap始终为空,结果搜索了半天,才找到如下方式就好了,我想知道是为什么?
hBitmap = ::LoadBitmap(AfxGetResourceHandle(),MAKEINTRESOURCE(IDB_SHINE));
-------------------------------------------------------------------------------------------------------------------------
LoadBitmap必须传入资源所在的instance。
下面分MFC和SDK两种方式讨论你的问题。
1、如果采用MFC方式,可以使用 AfxGetResourceHandle保存当前的资源文件句柄,即你说的hInst。也可以使用AfxSetResourceHandle设置资源DLL的句柄,如:
hDll=LoadLibrary( "ResourceDLL.dll ");
if(hDll==NULL)
AfxMessageBox( "Can 't Load the library ");
else AfxMessageBox( "success ");
AfxSetResourceHandle(hDLL);
...
}
这样以后你再使用LoadBitmap时,图片将来