求教关于类似酷狗音乐滚动歌词的实现

时间:2021-03-05 05:02:08
大家有谁做过或则知道怎么实现像酷狗左面歌词那种滚动变色显示啊?
我自己在做的时候,想法是在窗体上放label,然后把窗体设置成透明的,结果label也一起透明了。还用了用form.canvas.textout在窗体画布上写字,结果也是透明的。请高手们指点!谢谢啦!

8 个解决方案

#1


应该是 GDI 编程。

我也不太懂。这个需要好好学学。。

#2


在一个隐藏的bmp1里用红色写整行文字,
在一个隐藏的bmp2里用黄色写整行文字,
得到当然位置x
输出bmp1的0-x区域到显示的bmp,再输出bmp2的x+1到最右边区域

#3


好多年前搞过...
写起代码来比较麻烦...

#4


Delphi好像有一個歌詞顯示插件:winamp v2.X 歌词显示插件。。。

#5


引用 2 楼 sz_haitao 的回复:
在一个隐藏的bmp1里用红色写整行文字,
在一个隐藏的bmp2里用黄色写整行文字,
得到当然位置x
输出bmp1的0-x区域到显示的bmp,再输出bmp2的x+1到最右边区域

2楼的意思是不是这样。底板是一个隐藏的bmp,然后在画布上写下一句歌词,比如:“我爱你一万年”。开始为止假如说是(0,0)这时候的文字是最初的颜色(假如未唱时时黑色,唱了是红色),也就是还没开始唱这句的时候的颜色。当唱到“我”这个字的时候就重新再画布上写下红色的我,于是红色的“我”把之前黑色的“我”覆盖了,所以“我爱你一万年”这句歌词只有“我”是红色,其他的都是黑色。这句的歌词其他字一句曲调依次用这种方法变成红色。当这句歌词唱完了,然后擦出掉画布,然后另外画上其他歌词。大概是这样吧。我先去试试。

#6


窗体透明了,上面的空间也透明了,真汗

#7


可以使用CreateRgn来创建通道,这样就可以让窗体只显示字体了

#8


fdsdfsafds

#1


应该是 GDI 编程。

我也不太懂。这个需要好好学学。。

#2


在一个隐藏的bmp1里用红色写整行文字,
在一个隐藏的bmp2里用黄色写整行文字,
得到当然位置x
输出bmp1的0-x区域到显示的bmp,再输出bmp2的x+1到最右边区域

#3


好多年前搞过...
写起代码来比较麻烦...

#4


Delphi好像有一個歌詞顯示插件:winamp v2.X 歌词显示插件。。。

#5


引用 2 楼 sz_haitao 的回复:
在一个隐藏的bmp1里用红色写整行文字,
在一个隐藏的bmp2里用黄色写整行文字,
得到当然位置x
输出bmp1的0-x区域到显示的bmp,再输出bmp2的x+1到最右边区域

2楼的意思是不是这样。底板是一个隐藏的bmp,然后在画布上写下一句歌词,比如:“我爱你一万年”。开始为止假如说是(0,0)这时候的文字是最初的颜色(假如未唱时时黑色,唱了是红色),也就是还没开始唱这句的时候的颜色。当唱到“我”这个字的时候就重新再画布上写下红色的我,于是红色的“我”把之前黑色的“我”覆盖了,所以“我爱你一万年”这句歌词只有“我”是红色,其他的都是黑色。这句的歌词其他字一句曲调依次用这种方法变成红色。当这句歌词唱完了,然后擦出掉画布,然后另外画上其他歌词。大概是这样吧。我先去试试。

#6


窗体透明了,上面的空间也透明了,真汗

#7


可以使用CreateRgn来创建通道,这样就可以让窗体只显示字体了

#8


fdsdfsafds