查看: 44|回复: 0

易语言透明标签bug完美解决方案

[复制链接]

3

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-10-8
发表于 2021-12-4 11:26:00 | 显示全部楼层 |阅读模式

     洪雨搞软件这些年,一直在研究功能,对软件界面要求很低,也没什么研究,一般用皮肤模块一套就完事。

    最近在做一个仿软,需要自绘制方面的知识。可我完全不会,就只能用笨办法,纯组件来做……

    众所周知,纯组件做效果,很大程度上是需要透明标签的。

    于是发现透明标签的一个bug……

    就是当透明标签的背景是动态的时候,比如有动图的图片框,或者图片框底图或颜色变化,或者背景是图片按钮超级按钮这样的。就会把透明标签的字刷掉。也可以说是覆盖掉。透明标签直接消失了。

    如果是静态背景就没有问题。

    这个bug困扰了我整整一天。后来无意中发现,如果背景不是按钮,而是图片框的话,把透明标签镶嵌在图片框上,透明标签就不会被刷掉。

    这是为啥?

    洪雨当时感觉,应该是因为图片框成为了透明标签的父窗口,所以才这样的。

    于是用了精易模块的窗口置父命令,发现不行。

    后来又兜兜转转浪费了很多时间,查了很多资料。发现全网几乎都在问这个问题,没有解决这个问题的。

    最后是在一个不太想关的源码里找到了答案。赶紧总结记录一下。

    关键解决方案还是要给透明标签置父句柄,只要动态背景成为了透明标签的父窗口,透明标签就不会被刷掉。

    但是,精易模块的窗口置父,是不行的。要用到API命令

    SetParent (, ) 第一个参数的子窗口句柄,第二个参数是父窗口句柄。

    用API窗口置父,就可以实现功能。

    后来,我查询了一下精易模块,发现稍微新一点的版本,还有一个窗口置父彗星,是调用的这个API封装的,直接用就好了。

    就此,bug完美解决。

原文转载自:http://www.zhizhuowz.com/post-689.html



来源:https://www.cnblogs.com/hongyuyingxiao/p/15641339.html
回复

使用道具 举报

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

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部