747957181 发表于 2011-9-10 04:35:43

[已解决]如何修正创建一个图片控件失误问题

本帖最后由 747957181 于 2011-9-24 22:53 编辑

创建一个图片控件,设定点击该图片按钮打开一个网站。

但是如果图片路径不正确的话,
在执行该程序时则会无限循环打开指定网站。
求解?

如果$pic1 引用的图片地址错误,
则执行该程序时会自动无限打开按钮对应的网站。
求解?

代码如下:#NoTrayIcon
#include <GUIConstantsEx.au3>
Opt("TrayMenuMode",1)
$about = TrayCreateItem("关于")
TrayCreateItem("")
$mianban = TrayCreateItem("打开主面板")
TrayCreateItem("")
$exit = TrayCreateItem("退出")
TraySetState()
GUICreate("影视导航菜单",310,200)
GUISetBkColor(0xFFFFFF)
$pic1 = GUICtrlCreatepic("JPG\1.jpg",10,10,0,0)
$pic2 = GUICtrlCreatepic("JPG\2.jpg",110,10,0,0)
$pic3 = GUICtrlCreatepic("JPG\3.jpg",210,10,0,0)
$pic4 = GUICtrlCreatepic("JPG\4.jpg",10,42,0,0)
$pic5 = GUICtrlCreatepic("JPG\5.jpg",110,42,0,0)
$pic6 = GUICtrlCreatepic("JPG\6.jpg",210,42,0,0)
$pic7 = GUICtrlCreatepic("JPG\7.jpg",10,74,0,0)
$pic8 = GUICtrlCreatepic("JPG\8.jpg",110,74,0,0)
$pic9 = GUICtrlCreatepic("JPG\9.jpg",210,74,0,0)
$pic10 = GUICtrlCreatepic("JPG\10.jpg",10,106,0,0)
$pic11 = GUICtrlCreatepic("JPG\11.jpg",110,106,0,0)
$pic12 = GUICtrlCreatepic("JPG\12.jpg",210,106,0,0)
$pic13 = GUICtrlCreatepic("JPG\13.jpg",10,138,0,0)
$pic14 = GUICtrlCreatepic("JPG\14.jpg",110,138,0,0)
$pic15 = GUICtrlCreatepic("JPG\15.jpg",210,138,0,0)
$Label = GUICtrlCreateLabel("",10,170,250,20)
GUISetState()
While 1
$msg = GUIGetMsg()
$b = @HOUR & ':' & @MIN & ':' & @SEC
If GUICtrlRead($Label) <> $b then GUICtrlSetData($Label,$b)
Switch $msg
Case $pic1
      ShellExecute("http://www.youku.com")
Case $pic2
      ShellExecute("http://www.tudou.com")
Case $pic3
      ShellExecute("http://tv.sohu.com/hdtv")
Case $pic4
      ShellExecute("http://www.pps.tv")
Case $pic5
      ShellExecute("http://www.juchang.com")
Case $pic6
      ShellExecute("http://www.pptv.com")
Case $pic7
      ShellExecute("http://www.kankan.com")
Case $pic8
      ShellExecute("http://www.cntv.cn")
Case $pic9
      ShellExecute("http://video.sina.com.cn")
Case $pic10
      ShellExecute("http://www.56.com")
Case $pic11
      ShellExecute("http://www.joy.cn")
Case $pic12
      ShellExecute("http://www.uusee.com")
Case $pic13
      ShellExecute("http://v.qq.com")
Case $pic14
      ShellExecute("http://boke.qq.com")
Case $pic15
      ShellExecute("http://www.qiyi.com")
Case $GUI_EVENT_CLOSE
      GUISetState(@SW_HIDE)
EndSwitch
$Traymsg = TrayGetMsg()
Switch $Traymsg
      Case 0
                ContinueLoop
    Case $mianban
                GUISetState()
    Case $about
                Msgbox(64, "关于", "程序制作:张亚洲"&@CR&"QQ:747957181"&@CR&@CR&"本机操作系统版本:"&@CR&@OSVersion&" "&@OSServicePack)
    Case $exit
                ExitLoop
    EndSwitch
WEnd

afan 发表于 2011-9-19 12:47:09

回复 11# 747957181


    把我写的那段代码放在你的代码后面;
   将你代码中的所有GUICtrlCreatepic 改为__GUICtrlCreatepic 如: $pic1 = __GUICtrlCreatepic("JPG\1.jpg",10,10,0,0)

747957181 发表于 2011-9-19 11:35:22

唉,都怪自己太笨了。
还是看不懂。

afan 发表于 2011-9-18 11:24:13

本帖最后由 afan 于 2011-9-18 12:07 编辑

还没解决吗? 这个如果用事件模式应该很好处理吧~
如果仍用消息模式,不做太多变动,也可以将你的 GUICtrlCreatePic 替换为 __GUICtrlCreatePic ,Func __GUICtrlCreatePic($F, $L, $T, $W, $H)
        Local $iC = GUICtrlCreatePic($F, $L, $T, $W, $H)
        If Not $iC Then $iC = GUICtrlCreatePic('', $L, $T, 50, 50) ;创建无图片的位置(也可创建Label提示),仍可点击
        Return $iC ;注意上面的50是图片宽高值,可以改为实际需要的宽高值,但不能为0,因为你上面都是写的0,所以这里不能直接代入$W、$H
Endfunc;
p.s, LZ用的倒序看帖吗,有些不适应的说~

747957181 发表于 2011-9-18 02:52:47

继续等吧

747957181 发表于 2011-9-15 14:17:29

回复 1# 747957181

怎么判断呢?
能否写出代码来?

hzxymkb 发表于 2011-9-15 13:12:06

把判断部份放在while里不是行咯

747957181 发表于 2011-9-15 06:28:41

非常感谢!
请问有没有办法解决
即使创建的图片控件路径错误,也不会在程序执行时自动循环打开该网站?

happytc 发表于 2011-9-14 20:21:12

抱歉,代码已经贴出来了。
如果$pic1 引用的图片地址错误,
则执行该程序时会自动无限打开按钮对应的网站 ...
747957181 发表于 2011-9-12 08:42 http://www.autoitx.com/images/common/back.gif


    对了嘛,把代码帖出来,别人一眼就可以看出你的问题了

之所以会出现“自动无限打开按钮对应的网站”,就是因为GUICtrlCreatePic()若失败,则返回0,也就是你这时的$pic1一直等于0,而$msg = GUIGetMsg()为空事件时也是反回0,于是就出现你说的问题了

747957181 发表于 2011-9-14 17:52:39

在线等吧
……

747957181 发表于 2011-9-12 08:42:02

抱歉,代码已经贴出来了。
如果$pic1 引用的图片地址错误,
则执行该程序时会自动无限打开按钮对应的网站。
求解?

happytc 发表于 2011-9-10 07:19:39

又是一个让人猜你的代码的人

你传个代码会怎么样呀,别人就偷学你的东西呀
页: [1]
查看完整版本: [已解决]如何修正创建一个图片控件失误问题