关于图片控键的更新
本帖最后由 yeqing880 于 2010-1-2 14:41 编辑#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Local $Pic2
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form3 = GUICreate("窗体1", 550, 349, 302, 218)
GUISetOnEvent($GUI_EVENT_CLOSE, "doyet")
$Pic1 = GUICtrlCreatePic("C:\Users\叶青\Desktop\jwws\皮肤\1.jpg", 0, 72, 548, 84, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUIctrlSetOnEvent($Pic1,"doyet")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
Sleep(100)
WEnd
func doyet()
Switch @GUI_CtrlId
Case $GUI_EVENT_CLOSE
Exit
case $Pic1
GUICtrlDelete($pic1)
$Pic2 = GUICtrlCreatePic("1\0021.JPG", 0, 72, 548, 84, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUIctrlSetOnEvent($Pic2,"doyet")
case $Pic2
Exit
EndSwitch
EndFunc
请各位帮我看下。。现在的问题是pic1删除以后,我重建了一个pic2,但是点击事件注册出现了错误。不能正常的执行pic2的exit程度
已经解决 ..谢谢大侠对我的帮助..真心感谢
;
本帖最后由 sanmoking 于 2009-12-31 18:04 编辑#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$test = 0 ;---------这个变量当一个标志用,你看后边的注释就会明白了。。。你那种思路绕路远了
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form3 = GUICreate("窗体1", 550, 349, 302, 218)
GUISetOnEvent($GUI_EVENT_CLOSE, "doyet")
$Pic1 = GUICtrlCreatePic("1.JPG", 0, 72, 548, 84, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
GUICtrlSetOnEvent($Pic1, "doyet")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
Sleep(100)
WEnd
Func doyet()
If $test = 0 Then ;---------如果没有更换过图片
GUICtrlSetImage($Pic1, "2.JPG") ;---------就更换
GUICtrlSetPos ($Pic1, 20, 20, 400,120 ) ;---------如果两张图片不一样大,就用修改下控件的大小位置好了
$test = 1 ;---------顺便把那个标志改为更换过
Else ;---------如果更换过图片
Exit ;---------就退出咯
EndIf ;---------就这么简单。。。不用去删除空间在新建控件什么的
EndFunc ;==>doyet 哪位给这么帅气的答案加个花呗。。。。。 afan花真多啊,好崇拜你啊。。。。
每次要花,都是你给的哦噢噢噢噢噢噢噢。。。。。 #include
#include
#include
$test = 0 ;---------这个变量当 ...
sanmoking 发表于 2009-12-31 17:58 http://www.autoitx.com/images/common/back.gif
谢谢您的帮助...主要是我开始在论坛里找了一下..好像听说GUIctrlimage 不能用才迫不得已用这招的 但是还有一个问题..如果我不光只是换这张图片..我还要加图片的话..注册事件会不会有问题呢 能说具体点否?
。。。循环创建控件???。。。。
明天给你写个简单点的例子,今天太晚了,一会有事。。。 比如说..我现在先删除了一张图片...在加入两张..但两张图片都要注册成事件.这样子...
麻烦你了..明天见 如果数目不确定,那只能用循环创建控件的办法。。。。如果数目已确定了,那方法就多了。。。。具体还得看你的源码,靠这样说,没法弄。。。。 我现在面临的问题是这样的..
首先.界面上是一张大的图片..一个大的带有连接的图片..
当用户点击大图片后,大图片消失,然后进入下一级菜单..这一级菜单又包括了N个小的带连接的图片
而且所有的小的图片都是有相关的功能的..
不知我像这样叙述大侠能否明白 找到解决方法了..我用的方法是先把所有的图片控键建立,事件注册后...用GUICtrlSetState隐藏控件..用的时候在显示出来.. 找到解决方法了..我用的方法是先把所有的图片控键建立,事件注册后...用GUICtrlSetState隐藏控件..用 ...
yeqing880 发表于 2010-1-2 14:40 http://www.autoitx.com/images/common/back.gif
我没仔细看楼主的东西,给个我的思路吧。。。
Dim $Radiooo
For $ioop = 1 To UBound ($usernameall)-1
$Radiooo[$ioop] = GUICtrlCreateRadio($usernameall[$ioop], 15, $ioop*20+8, 100, 17)
GUICtrlSetOnEvent(-1, "lastClick")
Next
类似这样子循环创建控件,然后在注册事件的函数里用上一次点击控件的句柄@GUI_CtrlId来识别。。
下面
本帖最后由 sanmoking 于 2010-1-4 11:31 编辑另外给你个窗体尺寸的思路,根据不同的控件数量,窗体大小也会不一样:
下面代码仅是一部分,不能直接运行的。
Dim $Radiooo
$Form0 = GUICreate("请选择", 160, UBound($usernameall)*20+50)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form0Close")
If UBound ($usernameall) > 1 Then
$Group0 = GUICtrlCreateGroup("当前登录用户", 8, 8, 143, UBound($usernameall)*20+5)
For $ioop = 1 To UBound ($usernameall)-1
$Radiooo[$ioop] = GUICtrlCreateRadio($usernameall[$ioop], 15, $ioop*20+8, 100, 17)
Next
GUICtrlSetState($Radiooo, $GUI_CHECKED)
GUICtrlCreateGroup("", -99, -99, 1, 1)
Else
$Group0 = GUICtrlCreateGroup("没有发现用户", 8, 8, 143, UBound($usernameall)*20+5)
GUICtrlCreateGroup("", -99, -99, 1, 1)
EndIf
$Buttonn1 = GUICtrlCreateButton("刷新", 8, UBound($usernameall)*20+18, 69, 25)
GUICtrlSetOnEvent(-1, "Buttonn1Click")
$Buttonn2 = GUICtrlCreateButton("确定", 83,UBound($usernameall)*20+18, 69, 25)
GUICtrlSetOnEvent(-1, "Buttonn2Click")
GUISetState(@SW_SHOW)
页:
[1]