VC++中用API调用对话框资源
关键技术:
对于资源的载入须要几个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)所看到的,
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2FucWltYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
图(2)import 资源
3)在资源视图中,点击鼠标右键,在在弹出的快捷键菜单中选择Import命令。弹出“导入资源对话框”,选择一个txt文件,点击“Import”。
4)在弹出的“自己定义资源类型”对话框中设置一个自己定义资源类型,这里输入“Text”。如图(3)所看到的,
图(3) 新类向导
5)按Ctrl+W 组合键进入 类向导,为文本控件加入变量,如图(4)所看到的,
图(4)为控件关联变量
6)设置文本框的属性,使其具有多行显示并能够显示滚动栏,如图(5)所看到的,
图(5)设置多行显示,并显示水平垂直滚动栏
7)加入“载入资源”button的点击事件,动态载入文本资源显示在文本框内,代码例如以下:
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); //释放资源
}
VC++中用API调用对话框资源的更多相关文章
- VC++中如何复制对话框资源
法1: 在你的工程中添加另一个工程的rc文件,这时资源视图中就会出现两个rc,从后加的rc中拷贝资源到你自己工程的rc中就可以了. 法2:vc中如何拷贝一个工程的对话框资源到另一个工程 ...
- VC++中复制对话框资源 之较好方法之一
资源对话框的编写有时候较为麻烦,这里我成功实现了这个方法的可用性,具体如下: 碰到模块移植问题了,自己做的对话框类(继承于CDialog)要移植到目标工程中.在网上搜了几个帖子发现都说的很生涩. ...
- CreateDialog Win32 API调用的一个小问题
在老版本号的VC编译器上.关键调用是下面2句: InitCommonDialogs(); HWND hwndDialog = CreateDialog(hInstance, "IDD_XXX ...
- VC Windows API获得桌面所有窗口句柄的方法
VC Windows API应用之GetDesktopWindow ——获得桌面所有窗口句柄的方法 Windows API Windows 这个多作业系统除了协调应用程序的执行.分配内存.管理资源…之 ...
- Windows开发进阶之VC++中如何实现对话框的界面重绘
技术:Windows 系统+Visual studio 2008 概述 应用程序界面是用户与应用程序之间的交互的桥梁和媒介,用户界面是应用程序中最重要的组成部分,也是最为直观的视觉体现.对用户而言 ...
- VC学习笔记:对话框
VC学习笔记:对话框 SkySeraph NOV.11st 2009 HQU Email-zgzhaobo@gmail.com QQ-452728574 Latest Modified Date:O ...
- 车型识别API调用与批量分类车辆图片
版权声明:本文为博主原创文章,转载 请注明出处 https://blog.csdn.net/sc2079/article/details/82189824 9月9日更:博客资源下载:链接: https ...
- Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST API,就能够很容易地构建一个增删查改应用.这个应用始终遗留了一个问题,Web App在访问REST AP ...
- FormatMessage与GetLastError配合使用,排查windows api调用过程中的错误
前一段时间在学习windows api调用过程中,遇到过一些调用错误或者程序没能显示预期的结果,或者直接出现vc运行时错误. 这对新手来说是司空见惯的事,因为不太熟悉难免会出错,出错的信息如果能显示很 ...
随机推荐
- ListView Item 点击展开隐藏问题
public class ListAdapter extends BaseAdapter { private Context mContext; private View mLastV ...
- kafka同步生产者和异步生产者深入剖析
什么是kafka同步生产者,什么是kafka异步生产者? 比如这里某个topic有3个分区. kafka同步生产者:这个生产者写一条消息的时候,它就立马发送到某个分区去. kafka异步生产者:这个 ...
- Android Studio将Eclipse的项目作为module的依赖库
情形: 我们现在有一个eclipse的项目,我们想把这个项目作为android studio的module的一个依赖库. 以前我们在eclipse的时候常常是在一个工作区里面把一个A工程 as a l ...
- table嵌套table,jquery获取tr个数
一.所有tr的个数 $("#tableId tr").length 二.所有一级tr的个数 1.$("#tableId > tr").length 2.$ ...
- VIP的转移
首先查看vip在各个节点的状态 [root@rac2 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:C9:28:D0 inet addr: ...
- amazeui学习笔记--css(HTML元素2)--代码Code
amazeui学习笔记--css(HTML元素2)--代码Code 一.总结 1.行内代码:code标签<code> 2.代码片段:pre标签<pre> 3.限制代码块高度:添 ...
- SQL Server2008 Hierarchyid数据类型
以往我们在关系数据库中建立树状结构的时候,通常使用ID+ParentID来实现两条 纪录间的父子关系.但这种方式只能标示其相对位置.解决这类问题在SqlServer2005出现之前通常是采用游标来操作 ...
- pat 2-05. 求集合数据的均方差(水题)
代码: #include<cstdio> #include<iostream> #include<cmath> using namespace std; doubl ...
- 具体解释ebs接口之客户配置文件导入(二)
------------------------------------ -- 1a. Setup the Org_id ------------------------------------ ex ...
- (转载)iis7下站点日志默认位置
转自http://www.cnblogs.com/mincyw/p/3425468.html iis7下站点日志默认位置 在iis6时,通过iis管理器的日志配置可以找到站点日志存储的位置. 但是 ...