急!在MFC扩展DLL中使用LoadImage碰到的问题!
建立一个MFC扩展DLL,然后我使用了数个Checkbox,设置恰当的风格,Push-like/Bitmap,然后
LPCTSTR lpszResourceName = (LPCTSTR)uBmpID;//资源号
HBITMAP hBmp = (HBITMAP)::LoadImage(\
AfxGetInstanceHandle(), lpszResourceName, \
IMAGE_BITMAP, 0,0, LR_CREATEDIBSECTION );
LoadImage函数从调用该DLL的应用程序资源文件中读资源,却不从我所希望的从DLL本身的资源文件中读取。这使得我每次必须将DLL中的资源复制一份到调用该DLL的应用中去。
问题点数:30、回复次数:2Top
1 楼wangjinwang(王者之疯)回复于 2003-08-05 12:44:08 得分 15
此时你需要设置资源来源,示意代码如下:
HANDLE hinstnew;
hinstnew = Loadbrary(...);
...
hinstOld = AfxGetResourceHandle();
AfxSetResourceHandle(hinstnew);//在这里
LoadString(IDS_MY_STRING);
AfxSetResourceHandle(hinstOld); // remember to set this back,
// or your night won't be nice.
如果你不是用LoadLibrary来调用DLL又该怎样办呢?你可以使用
GetModule("You DLL Name")来取得用户句柄,剩下的就好办了.
Top
2 楼Cline(营营[无意苦争春,贯看群芳谢])回复于 2003-08-05 12:59:21 得分 15
if your want LoadImage() loads image from dll resource,you should change module state using AFX_STATE_MANAGE() macro.Top




