MFC——添加新类型的资源并使用

     在MFC中,我们知道初始资源有Dialog,Icon,BMP,String等,但是我们经常在程序中需要加入自定义的资源。

例如声音文件,图像文件或者其他的HTML,PDF,CHM等,那么我们该如何添加这些资源:


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


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


     下面是ShellExecute()函数的内容:

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); 


     其他的资源也可以利用同样的方法进行操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值