您的位置:首页 > 其它

MFC如何添加新类型的资源并使用它

2012-10-30 20:51 363 查看
我们知道MFC的资源初始有Dialog,Icon,BMP,String等,但是我们经常在程序中需要加入自定义的资源。例如声音文件,图像文件或者其他的HTML,PDF,CHM等,那么我们怎么添加这些资源呢。


首先,右击资源,然后选择“添加资源”-》导入-》选择我们要添加的资源,例如一个CHM帮助文档。然后在资源类型中输入“CHM”。这样我们就在项目资源中加入了这个chm。

接着,我们要在程序中使用它。MFC自带的资源在程序运行时储存在内存中,我们要使用它们的话直接取出来就行了,例如我们把这个chm文件写入系统的临时目录中,然后通过ShellExecute()函数来打开这个chm文档。

具体如下:

HINSTANCE hInstance = AfxFindResourceHandle (MAKEINTRESOURCE (IDR_CHM1), RT_RCDATA) ;    //资源的ID号
HRSRC hRes = FindResource (hInstance, MAKEINTRESOURCE (IDR_CHM1), _T("chm")) ;    //chm是资源的类型,一定要写对
HGLOBAL hResData = LoadResource (hInstance, hRes) ;
void * lpvData = LockResource (hResData) ;
int cbSize = SizeofResource (hInstance, hRes) ;

TCHAR path[512];
::GetTempPathW(512,path);
CString temp;
temp.Format(_T("%s\\helpContents.chm"),path);   //写入到系统临时文件夹
CFile file(temp, CFile::modeCreate | CFile::modeWrite);
file.SetLength (cbSize) ;
file.SeekToBegin () ;
file.Write(lpvData,cbSize);
file.Close () ;
::ShellExecute(NULL,_T("open"),temp,NULL,NULL,SW_SHOW);


同理,其他的资源也可以通过这种方法再进行具体的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: