在DLL中存放位图资源
关键点
实现过程
DLL
1.用向导新建1个MFC Dll程序文件名为 project01
2.Insert Resource导入2张.bmp位图 IDB_BITMAP1 IDB_BITMAP2
3.在Resource中定义资源
4.编译生成dll
#define IDB_BITMAP1 5000 #define IDB_BITMAP2 5001 |
#define所定义的变量不要使用16进制的,使用10进制数的
注意再编译的时候 所定义的资源没被系统自动换掉,否则主程序无法调用
调用
1.用MFC向导创建1个MFC.exe程序
2.把project01.dll复制到本项目的Debug目录下
3.在窗体上面添加2个按钮和1个Picture控件设置General-Stryle:Bitmap
4.把Picture控件的ID号改成IDC_STATIC1,关联为控件变量名为 m_pic1
5.实现代码如下(动态为对话框加载图片)
void CProject02Dlg::OnButton1() { HMODULE hModule = LoadLibrary("project01.dll"); if (hModule) { HBITMAP hBmp =(HBITMAP)LoadImage(hModule,MAKEINTRESOURCE(5001),IMAGE_BITMAP,0,0,0); if (hBmp) { HBITMAP hOldBmp = m_pic1.SetBitmap(hBmp); if (hOldBmp) { DeleteObject(hOldBmp); } } FreeLibrary(hModule); } } |
图
备注
这纯粹是用DLl存放位图资源 然后就是调用这DLL里面的资源
按钮被单击2次就会消息看不见了,但任然在原位置
相关链接