开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3136|回复: 39
收起左侧

[易源码分享] 关于黑月部分RC资源调用

[复制链接]
回帖奖励 36 枚 精币 回复本帖可获得 1 枚 精币奖励! 每人限 1 次(中奖概率 50 %)
结帖率:29% (2/7)
发表于 2022-7-29 10:44:36 | 显示全部楼层 |阅读模式   吉林省吉林市
分享源码
界面截图: -
是否带模块: -
备注说明: -
本帖最后由 yyyxb 于 2022-7-29 16:52 编辑

原贴:https://bbs.125.la/forum.php?mod=viewthread&tid=14738119
本人小白,好不容易钻研出部分黑月rc资源使用办法,现在公布一下。方便大家使用(因为网上基本没有)本人使用模块黑月界面类3.8.9
有些rc资源(如窗口)的使用方法可以在网上(本站就可以)搜到,这里不多说。
有些类型的rc资源(如“AVI”“FONT”“MANIFEST”“MESSAGETABLE”“WAVE”等)我因为没用,所以也就不知道怎么用,网上源码也难找,如果有会的小伙伴可以分享一下注:资源要初始化程序后再调用
String 文本字符串:
  
子程序名返回值类型公开备 注
RC_String文本型 
参数名类 型参考可空数组备 注
参数_资源ID整数型
参数_缓冲区长度整数型默认自动取(会消耗时间和内存)
变量名类 型静态数组备 注
Resource_StringzyString 
Text文本型 
Resource_String.创建 ()
判断 (是否为空 (参数_缓冲区长度))
Resource_String.添加RC资源 (参数_资源ID, GetFitBuffer (参数_资源ID))
Resource_String.添加RC资源 (参数_资源ID, 参数_缓冲区长度)
Text = Resource_String.取文本 ()
Resource_String.销毁 ()
返回 (Text)

Unicode 版:
  
子程序名返回值类型公开备 注
RC_String_Unicode字节集 返回 Unicode 文本
参数名类 型参考可空数组备 注
参数_资源ID整数型
参数_缓冲区长度整数型默认自动取(会消耗时间和内存)
变量名类 型静态数组备 注
Resource_StringzyString 
Text字节集 
Resource_String.创建 ()
判断 (是否为空 (参数_缓冲区长度))
Resource_String.添加RC资源 (参数_资源ID, GetFitBuffer (参数_资源ID))
Resource_String.添加RC资源 (参数_资源ID, 参数_缓冲区长度)
Text = Resource_String.取文本W ()
Resource_String.销毁 ()
返回 (Text)
代码中提到的“GetFitBuffer ()”:
  
子程序名返回值类型公开备 注
GetFitBuffer整数型 
参数名类 型参考可空数组备 注
资源ID整数型
变量名类 型静态数组备 注
取出文本W字节集 
计次W整数型 
取出文本文本型 
计次整数型 
计次 = 计次 + 5
判断循环首 (取出文本 ≠ RC_String (资源ID, 计次))
取出文本 = RC_String (资源ID, 计次)
计次 = 计次 + 1
判断循环尾 ()
计次W = 计次W + 5
判断循环首 (取出文本W ≠ RC_String_Unicode (资源ID, 计次W))
取出文本W = RC_String_Unicode (资源ID, 计次W)
计次W = 计次W + 1
判断循环尾 ()
程序_整理内存 ()
判断 (计次 > 计次W)
返回 (计次 - 1)
返回 (计次W - 1)

Icon 图标:
  
子程序名返回值类型公开备 注
RC_Icon图标类 
参数名类 型参考可空数组备 注
参数_资源ID整数型
变量名类 型静态数组备 注
Resource_Icon图标类 
Resource_Icon.载入图标 (参数_资源ID)
返回 (Resource_Icon)

Image 图像(*.jpg,*.gif,*.png):
  
子程序名返回值类型公开备 注
RC_Image图像类 
参数名类 型参考可空数组备 注
参数_资源ID整数型
变量名类 型静态数组备 注
Resource_Image图像类资源 图像
Resource_Image.载入字节集 (黑月取资源字节集 (黑月寻找自定义资源 (参数_资源ID, “IMAGE”)))
返回 (Resource_Image)
字节集版:
  
子程序名返回值类型公开备 注
RC_Image_Bin字节集 
参数名类 型参考可空数组备 注
参数_资源ID整数型
返回 (黑月取资源字节集 (黑月寻找自定义资源 (参数_资源ID, “IMAGE”)))

Bitmap 位图:
  
子程序名返回值类型公开备 注
RC_Bitmap图像类 
参数名类 型参考可空数组备 注
参数_资源ID整数型
变量名类 型静态数组备 注
Resource_Bitmap位图类 
Resource_Image图像类 
Resource_Bitmap.创建自RC资源 (参数_资源ID)
Resource_Image.置指针 (Resource_Bitmap.取指针 ())
返回 (Resource_Image)
字节集版:
  
子程序名返回值类型公开备 注
RC_Bitmap_Bin字节集 
参数名类 型参考可空数组备 注
参数_资源ID整数型
变量名类 型静态数组备 注
Resource_Bitmap位图类 
Resource_Image图像类 
Bitmap字节集 
Resource_Bitmap.创建自RC资源 (参数_资源ID)
Resource_Image.置指针 (Resource_Bitmap.取指针 ())
Bitmap = Resource_Image.保存到字节集 ( #图像格式_BMP )
Resource_Image.销毁 ()
Resource_Bitmap.销毁 ()
返回 (Bitmap)


Cursor&AniCursor 鼠标指针(光标):
  
子程序名返回值类型公开备 注
RC_Cursor图标类 
参数名类 型参考可空数组备 注
资源ID整数型
变量名类 型静态数组备 注
Resource_Cursor图标类 
Resource_Cursor.载入光标 (资源ID)
返回 (Resource_Cursor)
有一个问题,经过此子程序返回的图标类,动画光标无法正常播放,暂时无法解决。小伙伴若有解决方法,可以评论指出。

Accelerator 加速器(快捷键):
  
子程序名返回值类型公开备 注
RC_Accelerator黑月快捷键信息 
参数名类 型参考可空数组备 注
参数_加速表ID整数型
参数_资源ID整数型
变量名类 型静态数组备 注
Resource_Accelerator快捷键类 
Accelerators黑月快捷键信息0
Accelerator黑月快捷键信息 
Times整数型 
Resource_Accelerator.载入 (参数_加速表ID)
Resource_Accelerator.取快捷键信息 (Accelerators)
判断 (取数组成员数 (Accelerators) = 0)
返回 (Accelerator)
判断 (取数组成员数 (Accelerators) = 1)
返回 (Accelerators [1])


计次循环首 (取数组成员数 (Accelerators), Times)
判断 (Accelerators [Times].ID = 参数_资源ID)
返回 (Accelerators [Times])



计次循环尾 ()
返回 (Accelerator)
子程序名返回值类型公开备 注
GetAcceleratorInfo整数型 
参数名类 型参考可空数组备 注
Accelerator黑月快捷键信息
Type整数型填标号:0.ID 1.键代码 2.功能键状态
判断 (Type = 0)
返回 (Accelerator.ID)
判断 (Type = 1)
返回 (Accelerator.键代码)
判断 (Type = 2)
返回 (Accelerator.功能键状态)


返回 (0)

其中在“RC_Accelerator”中参数“参数_加速表ID”指的是加速器表的资源ID,若用文本编辑器(如记事本)打开rc文件(有加速器资源),可以发现

用文本编辑器打开rc文件

用文本编辑器打开rc文件
加速器表“IDR_ACCEL1”被定义,根据格式“#define <ResourceName> <ResourceID>”,可以得知加速器表“IDR_ACCEL1”的资源ID为“1”。
使用示例:拿图片中说:取快捷键信息:RC_Accelerator (1, 258)
取快捷键信息中的ID:GetAcceleratorInfo (RC_Accelerator (1, 258), 0) ' 如果此快捷键资源存在,肯定返回ID“258”
取快捷键信息中的键代码:GetAcceleratorInfo (RC_Accelerator (1, 258), 1)
取快捷键信息中的功能键状态:GetAcceleratorInfo (RC_Accelerator (1, 258), 2)
(注:使用“GetAcceleratorInfo”时要设置易语言系统配置中“编译->数值精度丢失检查”不选中,否则分开写)

自定义资源:
  
子程序名返回值类型公开备 注
RC_CustomResource字节集 
参数名类 型参考可空数组备 注
Resoure_ID整数型
Resource_Type文本型
Resource_Type = 删首尾空 (Resource_Type)
返回 (黑月取资源字节集 (黑月寻找自定义资源 (Resoure_ID, Resource_Type)))
注:参数“Resource_Type”该大写大写
现在(据我)已知“IMAGE”“RCDATA”、自定义资源可以通过此方法调用,“BITMAP”“CURSOR”“ANICURSOR”无法通过此方法调用。至于“STRING”“ACCELERATORS”就更不用说。
如果测试有可通过此方法调用的资源类型或是不能的,可以在评论区标注好可不可以再打出来,我也不费心思测试了。








评分

参与人数 1好评 +1 精币 +3 收起 理由
冰点 + 1 + 3 奉上小小红包希望笑纳

查看全部评分


本帖被以下淘专辑推荐:

发表于 2023-7-22 20:54:50 | 显示全部楼层   江苏省无锡市
感谢分享!
回复 支持 反对

使用道具 举报

发表于 2023-5-30 15:28:01 | 显示全部楼层   黑龙江省牡丹江市
感谢分享!
回复 支持 反对

使用道具 举报

发表于 2022-10-21 20:38:51 | 显示全部楼层   湖南省长沙市

回帖奖励 +1 枚 精币


谢谢分享
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)

签到天数: 25 天

发表于 2022-9-3 13:32:49 | 显示全部楼层   湖南省益阳市
niubi~~~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 21 天

发表于 2022-8-27 11:35:52 | 显示全部楼层   广东省深圳市
学习了!
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 23 天

发表于 2022-8-24 00:27:34 | 显示全部楼层   湖南省长沙市

回帖奖励 +1 枚 精币

感谢分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/7)
发表于 2022-8-16 00:30:22 | 显示全部楼层   江西省宜春市
回复 支持 反对

使用道具 举报

结帖率:100% (8/8)

签到天数: 27 天

发表于 2022-8-10 23:36:54 | 显示全部楼层   湖南省长沙市
论坛有你更精彩
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 9 天

发表于 2022-8-9 16:10:30 | 显示全部楼层   河南省驻马店市
如果测试有可通过此方法调用的资源类型或是不能的,可以在评论区标注好可不可以再打出来,我也不费心思测试了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表