文本滚动
html中有一个marquee语句,现在我要把它改进!!
将文字平铺到一个picturebox上面,然后向右滚动,速度是可以变化的,每次滚动6个pixel,谁能回答我?
问题点数:13、回复次数:13Top
1 楼SmileKZS(猪耳朵)回复于 2001-05-19 15:24:00 得分 0
注意!我说的平铺只平铺一行,中间留有6pixel的空隙!
Top
2 楼idoloveyou(从高二开始上CSDN的人现在都工作了)回复于 2001-05-19 15:27:00 得分 0
我告诉你我的思想:调用API,创建一系列的东西(先往下看,你就知道有什么了,最后别忘了释放资源哦),然后用TextOut输出文字,输出之前把文字要占据的地方用BitBlt拷贝到一个MemDC中,输出以后再用BitBlt从MemDC中把那块图形拷贝回来,然后再用TextOut继续输出(当然坐标要改了),这样就能做到滚动的效果了,而且每次滚动几个Pixel由你自定Top
3 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2001-05-19 15:32:00 得分 10
代码:
Private Sub Timer1_Timer()
iy = iy + 90
Picture1.Cls
Picture1.CurrentX = iy: Picture1.CurrentY = 900
Picture1.Print "Help me baby"
Picture2.Picture = Picture1.Image
End Sub
利用timer控件控制滚动速度,利用Picture1做后台缓冲,在Picture1上绘制,然后翻转到
Picture2上显示。Top
4 楼Leemaasn(小鸟)回复于 2001-05-19 15:37:00 得分 0
支持TechnoFantasy(www.applevb.com
是这样的,我编读书器也是这么解决的,Top
5 楼SmileKZS(猪耳朵)回复于 2001-05-19 15:40:00 得分 0
我需要平铺!
你们都没有说到关于平铺的问题,我的问题还是没解决!
你们说的问题我早就做到了!
Top
6 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2001-05-19 17:39:00 得分 0
你可以利用CreateBrushIndirect建立一个刷子,然后填充整个PictureBox,下面:
http://www.applevb.com/sourcecode/brush.zip
用指定的位图做刷子填充整个窗口。这个程序演示如何建立画刷句柄以及将它选择到一个
图形设备句柄中。 Top
7 楼idoloveyou(从高二开始上CSDN的人现在都工作了)回复于 2001-05-19 18:28:00 得分 0
我的方法还是利用MemDC,将你的文字写入MemDC中,然后用BitBlt把需要的部分拷贝到PictureBox中,每次改变拷贝的部分,不久行了Top
8 楼smilejiangjun(smile将军)回复于 2001-05-20 07:28:00 得分 0
我同意idoloveyou()的意见Top
9 楼SmileKZS(猪耳朵)回复于 2001-05-20 08:24:00 得分 0
我用的是win2k,方法全部失效了!
再说,api调用总比内部调用快!
Top
10 楼SmileKZS(猪耳朵)回复于 2001-05-20 12:39:00 得分 0
我说错了,应该是内部调用比api快!
再说,不必这样麻烦吧,除了api应该还有别的办法!
你们都把文字看成picture了,真麻烦!
Top
11 楼jlum99(闲人)回复于 2001-05-20 13:32:00 得分 3
在图形方面api比vb快是一定的。要简单就用print 吧。Top
12 楼SmileKZS(猪耳朵)回复于 2001-05-23 20:19:00 得分 0
ok,大家不用讨论这个问题了,分也不能给了,我已经用一种欺骗的方法做完了,在此谢谢大家的建议!
Think's Very Very Much For TechnoFantasy!Top
13 楼SmileKZS(猪耳朵)回复于 2001-05-23 20:22:00 得分 0
不过technofantasy的意思跟我的差不多了,给分!Top




