求助,如何让GUI界面在运行时防止闪烁
求大佬帮忙看下,如何防止在运行过程中出现闪烁的现象以下为运行效果图
下方为GUI代码
#RequireAdmin
#include <Process.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
; 设置窗口参数
Local $GuiWidth = 441, $GuiHeight = 251 ; 窗口宽度和高度
Local $GuiTitle = "Form1" ; 窗口标题
; 创建无边框窗口在屏幕居中显示
Local $MainWindow = GUICreate($GuiTitle, $GuiWidth, $GuiHeight, (@DesktopWidth - $GuiWidth) / 2, (@DesktopHeight - $GuiHeight) / 2 , $WS_POPUP,$WS_EX_TOOLWINDOW)
; 设置窗口颜色(蓝色=0x2b579a,绿色=0x217346,红色=0xb7472a)
GUISetBkColor(0x2b579a)
; 创建显示控件
$Label1 = GUICtrlCreateLabel("软件安装", 15, 15, 325, 25)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label2 = GUICtrlCreateLabel("请稍候", 124, 82, 165, 75, BitOr(0x200, 0x1))
GUICtrlSetFont(-1, 40, 400, 0, "微软雅黑")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label3 = GUICtrlCreateLabel('....', 290, 82, 55, 75)
GUICtrlSetFont(-1, 40, 400, 0, "微软雅黑")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label4 = GUICtrlCreateLabel("正在安装:", 15, 205, 410, 25)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label5 = GUICtrlCreateLabel("(00/00)", 348, 15, 80, 25, BitOr(0x200, 0x1))
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
GUICtrlSetColor(-1, 0xFFFFFF)
GUISetState(@SW_SHOW)
; 循环显示动态效果
AdlibRegister("MyAdLibFunc", 500)
; 动态显示
Func MyAdLibFunc()
; 分配一个静态变量保存函数调用的次数.
Local Static $iCount = 0
$iCount += 1
If $iCount = 1 Then GUICtrlSetData($Label3, '.')
If $iCount = 2 Then GUICtrlSetData($Label3, '..')
If $iCount = 3 Then GUICtrlSetData($Label3, '...')
If $iCount = 4 Then
GUICtrlSetData($Label3, '....')
$iCount = 0
EndIf
EndFunc
; 进入消息循环,等待用户交互
While 1
If GUIGetMsg() = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
; 删除窗口,并结束程序
GUIDelete($MainWindow)
我的笨方法仅供参考,不建议采用!https://www.autoitx.com/thread-73241-1-1.html 代码:1楼代码 60 至 69 行
等高手解答,我也学习一下! chishingchan 发表于 2023-4-21 17:24
我的笨方法仅供参考,不建议采用!https://www.autoitx.com/thread-73241-1-1.html 代码:1楼代码 60 至 69 ...
权限不够
:face (36):
本帖最后由 chishingchan 于 2023-4-21 22:04 编辑
metest 发表于 2023-4-21 17:35
权限不够
简单的可以解释为:
While 1
$y = 获取控件状态
If $x <> $y Then ;当控件变化时
;执行某些语句
EndIf
$x = $y ;让控件状态赋值于变量(相等)
;其他语句
WEnd
路过,看看,学习学习。 加个Sleep(250)试下 楼主的审美不错:face (1):
页:
[1]