理解MFC中的“资源”概念

本文介绍了VisualC++中十种资源的管理方式,包括如何创建、导入和自定义资源,并探讨了资源的生命周期管理和内存使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      Visual C++ 支持十种资源:加速键、位图、光标、对话框、HTML、图标、菜单、串表、工具条和版本信息。     

      各种资源就是堆数据而已,最终都会被嵌入到EXE文件里的数据区中。需要的时候就通过函数加载到内存中使用。和数据库一样的。各种资源通过ID来唯一确定,就像数据库用关键字来确定一样。不同的资源由于类型不一样可以使用等值的ID,如同数据库里的每一个表单里的关键字值不唯一,但不同表单的关键字是允许一样的。 
      资源销毁,指的是让资源根据它的使用周期应该及时从内存中被释放,不要加载到内存后就不管了。否则内存越吃越大。

      你可以随时创建任何所需要的资源。只需显示ResourceView(资源视图),右击Resources(资源)文件夹,从上下文菜单中选择Insert(插入)。你会看到一个Insert Resource(插入资源)对话框,如上图所示。请注意,它显示出我们已提到过的所有十种资源。还应该看到,有三种创建资源的方式,即使用对话框上的New(新建),Import(导入)或Custom(自定义)按钮。可以在当前程序中使用来自其它工程的资源。例如,可能想在编写的每一个程序中都使用相同的公司徽标。只需右击Resources(资源)文件夹,从上下文菜单选择Import(导入)而不是Insert(插入)。你会看到Open-type(打开类型)对话框。选择包含了想要导入的资源的文件。正是由于这个原因,你会想到把你的大多数资源与程序分离。可惜的是,这种方法只对图标、光标、声波文件以及Visual Basic窗体文件有用。有几种使用来自其它工程的其它类型资源的方式,如About(关于)对话框。只需简单地为想要共享的资源创建一个分离的RC文件就行了。这在遇到像About对话框这样的资源时很有用。你只要将RC文件添加到工程中,剩下的由Visual C 来处理。另一种共享资源的方法是,将其复制到剪贴板,再在创建了正确类型的空白资源后,将其粘贴到工程中。自定义资源就是自己设计的资源。实际上,它并不适合Visual C 所提供的预定义类型。创建一个自定义资源项目很容易:只要单击Insert Resource(插入资源)对话框上的Custom(自定义)按钮。你会看到包含单个空白的New CustomResource(新建自定义资源)对话框。简单地输入自定义资源名。这时,Visual C 会产生一个新的文件夹,它含有你提供的自定义资源名和该文件夹内的一个新资源。还要提供实现这个资源所需的二进制数据。

MFC自定义界面HUI,高效简单,含详细注释和示例。 HUI包括基本控件、按钮、标签、编辑框、表格、悬停提示等,可组合出更多功能。资源占用少,效率高,能在低端机上运行,流畅不闪烁,完全满足工控等各种专业软件实现个性化要求。 本资源是“http://download.youkuaiyun.com/detail/hhhh63/6961889”的正式发布版。包括3个项目,Hui、HuiDemo1和HuiDemo2。 一、Hui项目 本项目是DLL项目,包括完整的界面库,使用双缓存,局部重画等技术,性能优异。为保证在不同的MFC版本中使用,本次上传提供了这部分的源码,一般不要对其改动。 二、HuiDemo1 简单的应用示例,包括窗口分割,控制面板和主显示区等,展示控件各方向停靠、自动充满、全屏切换、记忆窗口位置和大小、选项设置和保存注册表等功能,用户可直接以此为基础开发新项目。如需扩展其它功能,可从HuiDemo2查找复制相应代码。 三、HuiDemo2 除HuiDemo1的所有功能外,还包括界面库的全部功能和其它实用扩展功能,左中右三栏式分布,左右固定宽度,中间栏大小可变。 1、左边是属性栏,固定宽度,上边是时钟,下边是鼠标信息,当鼠标移到中间的图像区时显示鼠标位置和图像值。 2、中间是图像区,演示如何动态生存索引图像,从下向上移动,自适应大小,长宽比不变,点右边的调色板按钮改变颜色,点保存按钮把当前图像保存到桌面。 3、右边上边是控制栏,在中间的图像区中画各种几何图形,并计算几何图形包围的图像数据的最大值,最小值和平均值。 4、右边下边是表格演示,显示Windows文件夹下的文件列表,自动充满窗口区,随窗口大小改变显示项数,保证界面美观,最下面是搜索和定位功能。 四、运行环境,VC2010或更高版本。 欢迎大家下载并提意见,本资源版权归作者所有,分享供大家研究学心,不得用于商业用途,如有特殊要求请与本人联系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值