smooth 发表于 2014-1-29 15:39:55

[已解决]当点击某一按钮后如何显示一个动态图片以示程序正在执行?

本帖最后由 smooth 于 2014-2-6 11:32 编辑

当点击某一按钮后如何显示一个动态图片以示程序正在执行?比如当点击一个 Button之后,一幅动态图片就出现在指定的区域在转动,以示程序正在执行中,当出现MSGBOX或其他事件后,就消失不见。很多程序都是这样做的,谢谢!

hnfeng 发表于 2014-1-29 17:32:13

本帖最后由 hnfeng 于 2014-1-29 17:35 编辑

我也希望有此功能,但是结果比较失望的。目前可以暂用 SplashTextOn 来处理,显示个文本框。

http://www.autoitx.com/thread-43450-1-1.html

我觉得是否可以调用某个系统中的DLL来实现,因为许多程序有这个功能的,貌似系统自带的。

sdlyfjx 发表于 2014-1-31 13:56:46

你搜搜啊貌似坛子里面有而且AFAN估计弄过。。。    忘记了你也可以用splashimageon来不断的更新图片实现动画啊就像是GIF

fuldho 发表于 2014-1-31 20:51:37

图片格式也可以:

#include <GuiConstantsEx.au3>
$Form1 = GUICreate("", 250, 250,-1,-1)
$Pic1 = GUICtrlCreatePic("logo1.jpg", 5, 5, 200, 200)
AdlibRegister('_timer',300)
Dim $m=0
GUISetState()
       Do
      Until GUIGetMsg() = $GUI_EVENT_CLOSE

      GUIDelete()
Func _timer()
   $m += 1
If $m = "1"Then GUICtrlSetImage($Pic1, "logo2.jpg")
If $m = "2"Then GUICtrlSetImage($Pic1, "logo1.jpg")
If $m = "3"Then $m = 0
EndFunc

smooth 发表于 2014-2-6 11:32:02

先在程序的开始(找个合适的位置),创建一个GUI,并加载一个动态AVI文件,但是先不显示出来,
Global $Form_M = GUICreate("", 340, 100, -1, -1, BitOR($DS_MODALFRAME, $WS_POPUPWINDOW))
GUICtrlCreateLabel("数据库初始化正在进行中,请稍后...... ", 40, 40, 260, 80)
GUICtrlCreateAvi($Findfileavi, 0, 280, 30, 32, 32, $ACS_AUTOPLAY)
然后在程序中,你想要显示动态AVI的地方,插入以下代码就可以了:
GUISetState(@SW_SHOW)
WinWaitActive($Form_M)
WinSetOnTop($Form_M, "", 1)
然后在程序中,合适的时点将这个GUI隐藏就行了
GUISetState(@SW_HIDE, $Form_M)

hnfeng 发表于 2014-2-6 12:17:31

回复 5# smooth


    谢谢分享,学习了

bingshen2014 发表于 2014-3-11 13:39:31

感谢楼主分享,辛苦了。

smooth 发表于 2014-3-14 15:41:43

先在程序的开始(找个合适的位置),创建一个GUI,并加载一个动态AVI文件,但是先不显示出来,然后在程序中, ...
smooth 发表于 2014-2-6 11:32 http://www.autoitx.com/images/common/back.gif

不需要这个窗口显示的时候,不要将其隐藏起来,而是使用GUIDELETE(句柄)来将其删除。这样做的好处是退出程序时,可以删除释放的AVI文件。
页: [1]
查看完整版本: [已解决]当点击某一按钮后如何显示一个动态图片以示程序正在执行?