开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 3115|回复: 14
收起左侧

[改进提议] 给精易项目部开发的【扩展界面支持库一Ex】一个建议

[复制链接]
发表于 2023-2-23 02:06:48 | 显示全部楼层 |阅读模式   海南省海口市
本帖最后由 美夜赤月 于 2023-2-23 02:24 编辑

置表项背景颜色
取表项背景颜色
置表项文本颜色
取表项文本颜色
清除表项背景颜色
清除表项文本颜色

这几个命令本来论坛上就有可以实现类似功能的模块源码,你们却为了让这些功能收费,强制让你们的子类化接管,从而导致可用的模块功能失效。
这样的话,你们会让本来就用模块来做超列表颜色的软件全部失效。这样做是否有失大雅?
支持库某些功能收费固然是支持的,因为这是认可开发者的劳动能力的行为,但是本来就有免费的模块源码且不用支持库的功能为什么要强制子类化接管让模块功能失效呢?
因为某些大型的商业软件超列表的颜色渲染是必不可少的,但是居然该支持库做到了兼容原支持库且不做任何改动就能编译出来程序,那么久应该让用户原先的模块功能正常。
你们这样做,就会让用户改动很多地方的代码或者让用户出现不可调试的BUG,毕竟该支持库本身没有源码给用户修改以及调试。

以上是我个人的看法和建议。

@项目部006 @精易客服
结帖率:86% (6/7)

签到天数: 12 天

发表于 2023-3-23 13:23:56 | 显示全部楼层   浙江省温州市
有点恶意竟争的味道,支持!
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 17 天

发表于 2023-2-24 00:13:09 | 显示全部楼层   广西壮族自治区*
美夜赤月 发表于 2023-2-23 22:26
对的,如果不使用CallWindowProc返回的话模块功能是可以正常的,但是这样就会导致要修改模块里面的代码, ...

支持库也没法判断是否有谁处理了NM_CUSTOMDRAW通知消息
因为得到的就是那个结构, 如果模块处理完之后还调用原来的处理过程, 那就只能表示模块没处理完毕, 或者没处理
支持库得到的也是那个结构, 没有哪个标志能知道有谁处理了这个消息
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-23 22:26:39 | 显示全部楼层   海南省海口市
本帖最后由 美夜赤月 于 2023-2-23 22:28 编辑
福仔 发表于 2023-2-23 21:13
如果支持库能清空模块设置的颜色, 那就是模块处理后又把消息传递到原函数里了
你要是用模块+支持库的话,  ...

对的,如果不使用CallWindowProc返回的话模块功能是可以正常的,但是这样就会导致要修改模块里面的代码,当然,如果有模块源码的情况下,把CallWindowProc的返回改成直接返回0,然后让支持库的子类化返回也是可行的,但是扩展支持库既然做到了兼容原支持库能不改动超列表代码的情况下能直接编译,那么就要考虑到这类的情况,如果内部做个是否调用了收费指令的判断来决定子类化内部需要开启哪些功能是最好的。毕竟有大部分人很可能直接就拿现成品的模块来写自己的程序。(我个人一直不推荐直接用产品模块来写自己的程序,这样不好排查跟修改BUG)

点评

支持库也没法判断是否有谁处理了NM_CUSTOMDRAW通知消息 因为得到的就是那个结构, 如果模块处理完之后还调用原来的处理过程, 那就只能表示模块没处理完毕, 或者没处理 支持库得到的也是那个结构, 没有哪个标志能知道   广西壮族自治区*  详情 回复 发表于 2023-2-24 00:13
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 17 天

发表于 2023-2-23 21:13:38 | 显示全部楼层   广西壮族自治区*
美夜赤月 发表于 2023-2-23 19:18
模块处理颜色后肯定是返回了,但是支持库会清空模块处理后的类数据。所以就会导致颜色出现不显示的情况, ...

如果支持库能清空模块设置的颜色, 那就是模块处理后又把消息传递到原函数里了
你要是用模块+支持库的话, 那模块处理后就返回, 不要把消息传递到原函数里
因为模块是后子类化的, 所以是先处理消息, 如果处理后直接返回, 不把消息传递到原函数的话, 支持库就不会收到这个消息, 这样支持库就没法改模块设置的信息

点评

对的,如果不使用CallWindowProc返回的话模块功能是可以正常的,但是这样就会导致要修改模块里面的代码,当然,如果有模块源码的情况下,把CallWindowProc的返回改成直接返回0,然后让支持库的子类化返回也是可行的   海南省海口市  详情 回复 发表于 2023-2-23 22:26
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-23 19:25:18 | 显示全部楼层   海南省海口市
冰点 发表于 2023-2-23 08:33
这绝不是有意为知,只是支持库内部要实现一套,所以才接管子类化, 而且也未对其他已有的模块功能进行测试 ...

这个我知道不是有意为之,建议就是让收费指令与模块兼容一下,如果调用到了支持库的收费指令但是是未付费用户则无法调用该命令,除非是依赖性的调用支持库收费指令,否则的话还是不要让原有的模块指令失效。不然体验效果会大打折扣。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-23 19:18:34 | 显示全部楼层   海南省海口市
福仔 发表于 2023-2-23 10:12
子类化哪有什么强制与不强制的说法,支持库实现的很多功能必须通过子类化实现,颜色这一块全部都是处理nm_c ...

模块处理颜色后肯定是返回了,但是支持库会清空模块处理后的类数据。所以就会导致颜色出现不显示的情况,这种情况,可以在支持库的命令里判断是否调用该命令来实现子类化内部需不需要处理颜色的类数据。但是支持库没有这么做。

点评

如果支持库能清空模块设置的颜色, 那就是模块处理后又把消息传递到原函数里了 你要是用模块+支持库的话, 那模块处理后就返回, 不要把消息传递到原函数里 因为模块是后子类化的, 所以是先处理消息, 如果处理后直接返   广西壮族自治区*  详情 回复 发表于 2023-2-23 21:13
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 17 天

发表于 2023-2-23 10:12:53 高大上手机用户 | 显示全部楼层   广西壮族自治区*
子类化哪有什么强制与不强制的说法,支持库实现的很多功能必须通过子类化实现,颜色这一块全部都是处理nm_customdraw
支持库先加载,先子类化,模块后加载,模块肯定是后子类化
如果模块处理颜色后就返回,不把消息传递到原函数里,那支持库颜色设置相关命令全都无效
你要是模块处理后不返回,那消息肯定会传递到支持库里,支持库肯定会自行处理,支持库处理后肯定会覆盖模块设置过的数据,因为都是处理同一个消息

点评

模块处理颜色后肯定是返回了,但是支持库会清空模块处理后的类数据。所以就会导致颜色出现不显示的情况,这种情况,可以在支持库的命令里判断是否调用该命令来实现子类化内部需不需要处理颜色的类数据。但是支持库没   海南省海口市  详情 回复 发表于 2023-2-23 19:18
回复 支持 反对

使用道具 举报

签到天数: 19 天

发表于 2023-2-23 09:33:55 | 显示全部楼层   广东省广州市
奔过几次还是用回原来的!
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2023-2-23 09:03:39 | 显示全部楼层   广东省广州市

你要看下模块实现是用A版的还是W版的!现在这个支持库用的是W版的,所以模块里你也要用W版的去操作!

点评

主要还是支持库的子类化没做判断是否调用到收费的颜色渲染命令导致的。   海南省海口市  发表于 2023-2-23 19:21
这里A版跟W版没关系的,没用到W版的命令,全部用的是原支持库的命令。昨晚做了测试。   海南省海口市  发表于 2023-2-23 19:20
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 16 天

发表于 2023-2-23 08:33:50 | 显示全部楼层   广东省揭阳市
这绝不是有意为知,只是支持库内部要实现一套,所以才接管子类化, 而且也未对其他已有的模块功能进行测试。

我这边会跟进了解一下

感谢大佬建议。

点评

这个我知道不是有意为之,建议就是让收费指令与模块兼容一下,如果调用到了支持库的收费指令但是是未付费用户则无法调用该命令,除非是依赖性的调用支持库收费指令,否则的话还是不要让原有的模块指令失效。不然体验   海南省海口市  详情 回复 发表于 2023-2-23 19:25
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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