找回密码
 加入
搜索
查看: 5868|回复: 6

[GUI管理] 排除自身所点击控件以外的其他控件的焦点

  [复制链接]
发表于 2012-6-7 08:19:55 | 显示全部楼层 |阅读模式
悬赏10金钱已解决
本帖最后由 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[99],$Graphic[99]
$Form1 = GUICreate("Form1", 188, 369, 509, 271)
$Graphic[1] = GUICtrlCreateGraphic(0, 0, 185, 49)
GUICtrlSetColor(-1, 0x008000)
$Pic[1] = GUICtrlCreatePic("E:\360云盘\皮肤\5.jpg", 2, 2, 180, 44)
$Graphic[2] = GUICtrlCreateGraphic(0, 56, 185, 49)
GUICtrlSetColor(-1, 0x008000)
$Pic[2]= GUICtrlCreatePic("E:\360云盘\皮肤\2.jpg", 2, 58, 180, 44)
$Graphic[3] = GUICtrlCreateGraphic(0, 112, 185, 49)
GUICtrlSetColor(-1, 0x008000)
$Pic[3] = GUICtrlCreatePic("E:\360云盘\皮肤\3.jpg", 2, 115, 180, 44)
$Graphic[4] = GUICtrlCreateGraphic(0, 168, 185, 49)
GUICtrlSetColor(-1, 0x008000)
$Pic[4] = 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[2] = 1;主要这边啦
                        For $i=1 To 9
                        If $guiinfo[4] = $Pic[$i] Then
                                GUICtrlSetColor($Graphic[$i], 0xFF0000)
                        EndIf
                        next
        EndSelect
WEnd
附件: 您需要 登录 才可以下载或查看,没有账号?加入
发表于 2012-6-7 08:19:56 | 显示全部楼层
                Case $guiinfo[2] = 1;主要这边啦

                        For $i=1 To 9

                        If $guiinfo[4] = $Pic[$i] Then

                                GUICtrlSetColor($Graphic[$i], 0xFF0000)
                         Else  ;加这2行
                                 GUICtrlSetColor($Graphic[$i], 0x008000)

                        EndIf

                        next

评分

参与人数 1金钱 +10 收起 理由
xyhqqaa + 10 (*^__^*) 嘻嘻……。转过来了。。。

查看全部评分

发表于 2012-6-7 09:50:01 | 显示全部楼层
IF THEN后加个ELSE,把其它的颜色重置?
 楼主| 发表于 2012-6-7 10:11:51 | 显示全部楼层
回复 2# wingking84


   如果单纯一两个还好。可以直接处理、、但是控件多个。又想代码可以简洁点。。所以求助下
发表于 2012-6-7 10:31:47 | 显示全部楼层
你本来就有FOR循环,代码应该不复杂,跟数量没什么关系吧。
 楼主| 发表于 2012-6-7 10:37:20 | 显示全部楼层
回复 4# wingking84


    那请教下。。我点击只是更改下颜色。。如何实现。。比如点击A的时候。。。之前点过的。。全部改为默认颜色。。。。意思我是单选。。。不是多选。。实在没转过弯。。囧
发表于 2012-6-7 11:40:28 | 显示全部楼层
本帖最后由 水木子 于 2012-6-7 14:10 编辑

通常是用图片替换吧!这样看起来更好看哦!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 贡献 +9 收起 理由
xyhqqaa + 10 + 9 。。恩恩。。。(*^__^*) 嘻嘻……

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-10 06:34 , Processed in 0.095790 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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