VC++中用API调用对话框资源

84 篇文章 0 订阅

关键技术:

    对于资源的加载需要几个API函数,下面分别介绍这几个API函数。

 a) FindResource 用来在一个指定的模块中定位所指的资源,语法如下:

     HRSRC FindResource(HMODULE hModule, LPCRSTR lpName, LPCTSTR lpType);

     参数说明:

    (1)hModule: 包含所需要的资料的模块句柄,如果是程序本身,则可以设置为NULL;

    (2)lpName: 可以使资源名称或者资源ID;

    (3)lpType:资源类型,在这里也就是自己指定的资源类型。

 b) LoadResource 用来将所有的资源加载到内存中,语法如下:

       HGLOBAL LoadResource(HMODULE hModule, HRSRC hResInfo);

     参数说明:

    (1)hModule: 包含所需要的资料的模块句柄,如果是程序本身,则可以设置为NULL;

    (2)hReInfo: 需要加载的资源句柄,这里也就是FindResource的返回值;

 c) LockResource 用来锁定内存中的资源数据块,返回值也就是要使用的直接指向资源数据的指针,语法如下:

       LPVOID LockResource(HGLOBAL hResData);

     参数说明:

     hResData: 指向内存中要锁定的资源数据块,这里也就是LoadResource的返回值。

效果如下:

设计过程:

1)使用VC6.0创建基于对话框的应用程序。

2)向窗体中添加一个静态文本控件,用鼠标右键点击对话框,在弹出的快捷键菜单中选择Properties命令,设置窗体的Caption属性为“API调用对话框资源”,如图(2)所示,

图(2)import 资源

3)在资源视图中,点击鼠标右键,在在弹出的快捷键菜单中选择Import命令,弹出“导入资源对话框”,选择一个txt文件,点击“Import”。

4)在弹出的“自定义资源类型”对话框中设置一个自定义资源类型,这里输入“Text”,如图(3)所示,

图(3) 新类向导

5)按Ctrl+W 组合键进入 类向导,为文本控件添加变量,如图(4)所示,

  

    图(4)为控件关联变量

6)设置文本框的属性,使其具有多行显示并可以显示滚动条,如图(5)所示,

图(5)设置多行显示,并显示水平垂直滚动条

7)添加“载入资源”按钮的点击事件,动态加载文本资源显示在文本框内,代码如下:

void CAPIResourceDlg::OnLoadResource() 
{	
	HRSRC hRsrc = FindResource(NULL,MAKEINTRESOURCE(IDR_TEXT1),TEXT("Text"));
	if(NULL == hRsrc)
		return ;
	//获取资源的大小
	DWORD dwSize = SizeofResource(NULL,hRsrc);
	if(0 == dwSize)
		return ;
	//加载资源
	HGLOBAL hGlobal = LoadResource(NULL,hRsrc);
	if(NULL == hGlobal)
		return ;
	//锁定资源
	LPVOID pBuffer = LockResource(hGlobal);
	if(NULL == pBuffer)
		return ;
	m_Edit = (char *)pBuffer;
	this->UpdateData(false);
	UnlockResource(hGlobal);//资源解锁
	FreeResource(hGlobal); //释放资源
}


 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanqima

一键三连,多多益善

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值