水木子
发表于 2010-3-16 21:36:46
本帖最后由 水木子 于 2010-3-16 21:38 编辑
回复 13# afan
我猜LZ是不是看到前辈的例子 认为前辈的是一个控件在滚动! 而他要的效果是整个GUI滚动???
哎!瞎猜的!
menfan
发表于 2010-3-16 21:41:22
回复afan
我猜LZ是不是看到前辈的例子 认为前辈的是一个控件在滚动! 而他要的效果是整个GUI滚动??? ...
水木子 发表于 2010-3-16 21:36 http://www.autoitx.com/images/common/back.gif
这个例子以前就看到过了,一般实现滚动屏幕都是一行一行滚动,现在要实现的时一屏一屏的滚动切换,难度加大了一点哦。
水木子
发表于 2010-3-16 21:44:25
一屏一屏的滚动切换???
一屏的文字显示一段时间,滚动出去 新的文字进来停一段时间再出去 ??? 这样切换?
menfan
发表于 2010-3-16 21:45:16
一屏一屏的滚动切换???
一屏的文字显示一段时间,滚动出去 新的文字进来停一段时间再出去 ??? 这样 ...
水木子 发表于 2010-3-16 21:44 http://www.autoitx.com/images/common/back.gif
没错,类似于这种效果
水木子
发表于 2010-3-16 21:49:02
哦!那也比较简单!
我倒是在想做点切换时的特效,就像一些图片切换那样!
menfan
发表于 2010-3-16 21:52:33
哦!那也比较简单!
我倒是在想做点切换时的特效,就像一些图片切换那样!
水木子 发表于 2010-3-16 21:49 http://www.autoitx.com/images/common/back.gif
做好的话发个例子学习一下哦
lxz
发表于 2010-3-16 21:56:09
这个应该可以做到.....
menfan
发表于 2010-3-16 22:03:49
可以做的话,能不能给个实例呢?
水木子
发表于 2010-3-16 22:30:26
临时做的有点乱!不知道LZ是不是这意思?#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $hFgui, $hSgui, $Label1, $Label2, $Texta, $zb, $za
_Example1()
Func _Example1()
$za = -180
$zb = 300
$Texta = ' 滚动字幕开始' & @CRLF & @CRLF & _
' 这里是很长很长的测试文字' & @CRLF & @CRLF & _
' 这里是很长很长的测试文字' & @CRLF & @CRLF & _
' 这里是很长很长的测试文字' & @CRLF & @CRLF & _
' 这里是很长很长的测试文字' & @CRLF & @CRLF & _
' 这里是很长很长的测试文字' & @CRLF & @CRLF & _
' 这里是很长很长的测试文字' & @CRLF & @CRLF & _
' 这里是很长很长的测试文字' & @CRLF & @CRLF & _
' 这里是很长很长的测试文字' & @CRLF & @CRLF & _
' 滚动字幕结束'
$hFgui = GUICreate('滚动字幕', 450, 300)
GUISetState()
$hSgui = GUICreate("", 200, 260, 230, 40, $WS_POPUP, $WS_EX_MDICHILD, $hFgui)
GUISetBkColor('0x008ACC', $hSgui)
$Label1 = GUICtrlCreateLabel("", -180, 15, 190, 250)
$Label2 = GUICtrlCreateLabel("", 5, 300, 190, 250)
GUICtrlSetData($Label1, $Texta)
GUICtrlSetData($Label2, $Texta)
GUISetState()
AdlibRegister('Scrolla', 20)
EndFunc ;==>_Example1
While GUIGetMsg() <> -3
WEnd
Func Scrolla()
ControlMove($hSgui, '', $Label2, 5, $zb)
If $zb = -250 Then
$zb = 300
AdlibUnRegister('Scrolla')
AdlibRegister('Scrollb', 20)
ElseIf $zb = 15 Then
Sleep(3000)
EndIf
$zb -= 1
EndFunc ;==>Scrolla
Func Scrollb()
ControlMove($hSgui, '', $Label1, $za, 15)
If $za = 250 Then
$za = -180
AdlibUnRegister('Scrollb')
AdlibRegister('Scrolla', 20)
ElseIf $za = 5 Then
Sleep(3000)
EndIf
$za += 1
EndFunc ;==>Scrollb
水木子
发表于 2010-3-16 22:35:21
不知道怎么的,我始终觉得文字在滚动的时候抖动得很厉害,你试试呢!
menfan
发表于 2010-3-17 07:42:33
不知道怎么的,我始终觉得文字在滚动的时候抖动得很厉害,你试试呢!
水木子 发表于 2010-3-16 22:35 http://www.autoitx.com/images/common/back.gif
呵呵,是闪烁厉害吧,不知道如何平滑滚动?
menfan
发表于 2010-3-17 08:22:14
本帖最后由 menfan 于 2010-3-17 08:27 编辑
临时做的有点乱!不知道LZ是不是这意思?
水木子 发表于 2010-3-16 22:30 http://www.autoitx.com/images/common/back.gif
这个代码是已知文本的情况,如果是未知文本大小(要取多个DOC文件)的情况呢?比如滚动一个文件内容后停顿一下,然后滚动所有文件内容之后停顿一下,再循环滚动。
lxz
发表于 2010-3-17 11:32:25
不知道怎么的,我始终觉得文字在滚动的时候抖动得很厉害,你试试呢!
水木子 发表于 2010-3-16 22:35 http://www.autoitx.com/images/common/back.gif
有点抖动.....
yuexiao986
发表于 2010-3-17 12:39:54
新手进来学习赚点分
xwlzx
发表于 2010-3-21 13:53:48
看看,谢谢!