#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#NoTrayIcon
$Form1 = GUICreate("滚动文字", 600, 40, 192, 654, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_LAYERED))
GUISetBkColor(0xABCDEF)
$txt = IniRead('Time.ini', '设置', '滚动文字', 0)
$Label1 = GUICtrlCreateLabel($txt, 0, 0, StringLen($txt) * 40, 40)
GUICtrlSetColor($Label1, 0xe000ff)
GUICtrlSetFont($Label1, 30, 400, 0, '黑体')
GUISetState(@SW_SHOW)
_API_SetLayeredWindowAttributes($Form1, 0xABCDEF)
move()
Func move()
$T = 0
While 1
$s = StringLen($txt) + 600
Do
ControlMove('滚动文字', '', $Label1, $s - 1, 0)
$s -= 1
Sleep(IniRead('Time.ini', '设置', '滚动速度', 10))
Until $s = -StringLen($txt) * 40
$T += 1
If $T = IniRead('Time.ini', '设置', '滚动次数', 0) Then Exit
WEnd
EndFunc ;==>move
Func _API_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency = 255, $isColorRef = False)
Local Const $AC_SRC_ALPHA = 1
Local Const $ULW_ALPHA = 2
Local Const $LWA_ALPHA = 0x2
Local Const $LWA_COLORKEY = 0x1
If Not $isColorRef Then
$i_transcolor = Hex(String($i_transcolor), 6)
$i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
EndIf
Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $LWA_COLORKEY + $LWA_ALPHA)
Select
Case @error
Return SetError(@error, 0, 0)
Case $Ret[0] = 0
Return SetError(4, 0, 0)
Case Else
Return 1
EndSelect
EndFunc ;==>_API_SetLayeredWindowAttributes