排除自身所点击控件以外的其他控件的焦点
本帖最后由 xyhqqaa 于 2012-6-7 08:25 编辑最初的想法是点击2的时候,2之前所点击过的其他控件全部失去焦点。但是新手纠结下。。。不知道咋排除。。。现在点击的话。其他所选择焦点还是存在,意思等于我想单选。。。现在确是全选。。如图
简单代码如下:#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=
Dim $Pic,$Graphic
$Form1 = GUICreate("Form1", 188, 369, 509, 271)
$Graphic = GUICtrlCreateGraphic(0, 0, 185, 49)
GUICtrlSetColor(-1, 0x008000)
$Pic = GUICtrlCreatePic("E:\360云盘\皮肤\5.jpg", 2, 2, 180, 44)
$Graphic = GUICtrlCreateGraphic(0, 56, 185, 49)
GUICtrlSetColor(-1, 0x008000)
$Pic= GUICtrlCreatePic("E:\360云盘\皮肤\2.jpg", 2, 58, 180, 44)
$Graphic = GUICtrlCreateGraphic(0, 112, 185, 49)
GUICtrlSetColor(-1, 0x008000)
$Pic = GUICtrlCreatePic("E:\360云盘\皮肤\3.jpg", 2, 115, 180, 44)
$Graphic = GUICtrlCreateGraphic(0, 168, 185, 49)
GUICtrlSetColor(-1, 0x008000)
$Pic = GUICtrlCreatePic("E:\360云盘\皮肤\4.jpg", 2, 170, 180, 44)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$guiinfo = GUIGetCursorInfo($Form1)
$nMsg = GUIGetMsg()
Select
Case $nMsg = -3
Exit
Case $guiinfo = 1;主要这边啦
For $i=1 To 9
If $guiinfo = $Pic[$i] Then
GUICtrlSetColor($Graphic[$i], 0xFF0000)
EndIf
next
EndSelect
WEnd
Case $guiinfo = 1;主要这边啦
For $i=1 To 9
If $guiinfo = $Pic[$i] Then
GUICtrlSetColor($Graphic[$i], 0xFF0000)
Else;加这2行
GUICtrlSetColor($Graphic[$i], 0x008000)
EndIf
next
IF THEN后加个ELSE,把其它的颜色重置? 回复 2# wingking84
如果单纯一两个还好。可以直接处理、、但是控件多个。又想代码可以简洁点。。所以求助下 你本来就有FOR循环,代码应该不复杂,跟数量没什么关系吧。 回复 4# wingking84
那请教下。。我点击只是更改下颜色。。如何实现。。比如点击A的时候。。。之前点过的。。全部改为默认颜色。。。。意思我是单选。。。不是多选。。实在没转过弯。。囧 本帖最后由 水木子 于 2012-6-7 14:10 编辑
通常是用图片替换吧!这样看起来更好看哦!
页:
[1]