SetBatchLines -1 WinW := XPos2 := 300 Gui Font, s14, Microsoft YaHei UI text := "测试Gui显示文字的循环滚动效果" Gui +ToolWindow Gui Add, Text, x%XPos2% y15 BackgroundTrans vtext4, %text% GuiControlGet, Text4, Pos Gui Add, Text, % "x-999 y10 w9999 h" (Text4H += 10) " +0x12" ; 上下分割线 Gui Show, w%WinW% h60, 滚动文字展示 计时() ; /* SetTimer Animate, 15 Return Animate: GuiControl Move, Text4, % "x" (XPos2-=2) GuiControlGet Text4, Pos If (text4X + text4W < 0) MsgBox % "耗时:" 计时() " 毫秒" Return */ ; Loop会占有线程,Loop+Sleep的精度计算与SetTimer不一样 Loop { Sleep 20 GuiControl Move, Text4, % "x" (XPos2-=2) GuiControlGet Text4, Pos If (text4X + text4W < 0) MsgBox % "耗时:" 计时() " 毫秒" } ; Gui Hide Return GuiClose: ExitApp ; SetTimer15耗时:4528.450300 毫秒 ; SetTimer16耗时:7224.736900 毫秒 ; Loop+Sleep20耗时:4519.076900 毫秒 ; Loop+Sleep21耗时:7241.284200 毫秒 ; 测完了,SetTimer精度=Sleep-5。都有精度问题,就是表现的不一样而已。 ; 精度有个阶级段位,15和16数值上差1,但是精度段位差一个阶级 计时() { Static if 开始= DllCall("QueryPerformanceFrequency", "Int64*", 频率), DllCall("QueryPerformanceCounter", "Int64*", 开始) else DllCall("QueryPerformanceCounter", "Int64*", 结束), 耗时:=(结束 - 开始)/频率*1000, 开始:="" Return 耗时 }
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)