xyhqqaa 发表于 2012-6-7 08:19:55

排除自身所点击控件以外的其他控件的焦点

本帖最后由 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

wingking84 发表于 2012-6-7 08:19:56


                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

wingking84 发表于 2012-6-7 09:50:01

IF THEN后加个ELSE,把其它的颜色重置?

xyhqqaa 发表于 2012-6-7 10:11:51

回复 2# wingking84


   如果单纯一两个还好。可以直接处理、、但是控件多个。又想代码可以简洁点。。所以求助下

wingking84 发表于 2012-6-7 10:31:47

你本来就有FOR循环,代码应该不复杂,跟数量没什么关系吧。

xyhqqaa 发表于 2012-6-7 10:37:20

回复 4# wingking84


    那请教下。。我点击只是更改下颜色。。如何实现。。比如点击A的时候。。。之前点过的。。全部改为默认颜色。。。。意思我是单选。。。不是多选。。实在没转过弯。。囧

水木子 发表于 2012-6-7 11:40:28

本帖最后由 水木子 于 2012-6-7 14:10 编辑

通常是用图片替换吧!这样看起来更好看哦!
页: [1]
查看完整版本: 排除自身所点击控件以外的其他控件的焦点