newuser 发表于 2010-7-15 14:19:03

[已解决]窗口渐显字的问题?

看了论坛的窗口渐显字例子,但自己上午还是花了1个多小时才解决,好悬又贴帖子问大家了!呵呵!#cs ____________________________________

Au3 版本:
脚本作者:
        Email:
        QQ/TM:
脚本版本:
脚本功能: 自我介绍
编写本脚本收获:
对有”教训“的要特别注意
1.设置透明窗口WinSetTrans();
2.对Label控件书写多行内容用&、@crlf和续行符号_完成;
3.对控件设置字体和颜色用GUICtrlSetFont、GUICtrlSetColor命令;
4.区域覆盖:点击$Label8居然没反映,代码没错误!原来是$Label1高度设置过大,覆盖住了$Label8,而窗口恰好设置了透明度,能看到它,哎!
5.学会了在窗口使用渐显文字,主要方法设置空内容标签Label,再用_test()函数完成,其中最关键的是函数中字符的拆分,记住是""不是" ",
   中间有空格能把你害死!!!!!!浪费了近1个小时呀!教训!
#ce _______________脚本开始_________________

#include-once
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form=GUICreate("我的图片窗", 300, 200, -1, -1, $WS_SIZEBOX + $WS_SYSMENU+BitOR($WS_POPUP, $WS_BORDER))
GUISetBkColor(0xE0FFFF)
;WinSetTrans($Form,"",180) ;设置指定窗口的透明度 WinSetTrans("窗口标题","窗口文本",透明度)
$Icon1 = GUICtrlCreateIcon("D:\zgk_2010\autoit\AutoIt_zgk_works\PersonalTools\Logo.ico", -1, 16, 16, 41, 33)
$Label1 = GUICtrlCreateLabel("作者:一阳老爹" & @CRLF & _
                           "联系:" & @CRLF & _
                                                       "推介网站:" & @CRLF & _
                                                       "软件说明:这是本人的第一个计算机运维" & @CRLF & _
                           "工具,缺点多多!加之水平有限,如果发" & @CRLF & _
                           "现问题,请及时通知以便改正!" & @CRLF & _
                           "版权:个人所有,如有雷同,纯属虚构!", 80, 16, 1000,100)
$GraduallyWords= GUICtrlCreateLabel("", 35, 180, 260, 20)
GUICtrlSetColor(-1,0xff0000)
GUISetState()
_test($GraduallyWords, "点击退出")
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GraduallyWords
                        GUIDelete($Form)
                        Exit
               
        EndSwitch
WEnd

Func _test($GraduallyLabel,$GraduallyContent);用"渐显字内容“的函数,$GraduallyLabel对应标签控件$GraduallyWords,$GraduallyContent对应"渐显字内容"
        $Content=StringSplit($GraduallyContent,"")
        ;把"渐显字的内容"拆分,分割符号是”“,"渐显字内容"不显示是把”“写成” “,多了空格!
        ;至于内容不完全显示,是自己GUICtrlSetData()不完全造成问题
        For $i=1To $Content
                If $i=1 Then
                        GUICtrlSetData($GraduallyLabel,$Content);显示第1个渐显字
                ElseIf$i=2Then
                  GUICtrlSetData($GraduallyLabel,$Content & $Content);显示第2个渐显字并与上一个渐显字连接上,以下类推
                ElseIf $i=3 Then
                  GUICtrlSetData($GraduallyLabel,$Content & $Content & $Content)
                ElseIf $i=4 Then
                  GUICtrlSetData($GraduallyLabel,$Content & $Content & $Content & $Content)
                EndIf
                Sleep(500)
        Next
EndFunc







ransally 发表于 2010-7-15 17:12:18

LZ写的好详细,学习了

lxz 发表于 2010-7-16 07:04:15

学习了......
页: [1]
查看完整版本: [已解决]窗口渐显字的问题?