找回密码
 加入
搜索
查看: 4277|回复: 11

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

  [复制链接]
发表于 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
发表于 2011-9-19 12:47:09 | 显示全部楼层
回复 11# 747957181


    把我写的那段代码放在你的代码后面;
   将你代码中的所有GUICtrlCreatepic 改为__GUICtrlCreatepic 如: $pic1 = __GUICtrlCreatepic("JPG\1.jpg",10,10,0,0)
 楼主| 发表于 2011-9-19 11:35:22 | 显示全部楼层
唉,都怪自己太笨了。
还是看不懂。
发表于 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用的倒序看帖吗,有些不适应的说~
 楼主| 发表于 2011-9-18 02:52:47 | 显示全部楼层
继续等吧
 楼主| 发表于 2011-9-15 14:17:29 | 显示全部楼层
回复 1# 747957181

怎么判断呢?
能否写出代码来?
发表于 2011-9-15 13:12:06 | 显示全部楼层
把判断部份放在while里不是行咯
 楼主| 发表于 2011-9-15 06:28:41 | 显示全部楼层
非常感谢!
请问有没有办法解决
即使创建的图片控件路径错误,也不会在程序执行时自动循环打开该网站?
发表于 2011-9-14 20:21:12 | 显示全部楼层
抱歉,代码已经贴出来了。
如果$pic1 引用的图片地址错误,
则执行该程序时会自动无限打开按钮对应的网站 ...
747957181 发表于 2011-9-12 08:42



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

之所以会出现“自动无限打开按钮对应的网站”,就是因为GUICtrlCreatePic()若失败,则返回0,也就是你这时的$pic1一直等于0,而$msg = GUIGetMsg()为空事件时也是反回0,于是就出现你说的问题了
 楼主| 发表于 2011-9-14 17:52:39 | 显示全部楼层
在线等吧
……
 楼主| 发表于 2011-9-12 08:42:02 | 显示全部楼层
抱歉,代码已经贴出来了。
如果$pic1 引用的图片地址错误,
则执行该程序时会自动无限打开按钮对应的网站。
求解?
发表于 2011-9-10 07:19:39 | 显示全部楼层
又是一个让人猜你的代码的人

你传个代码会怎么样呀,别人就偷学你的东西呀
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 15:26 , Processed in 0.324022 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表