无焰之火 发表于 2009-11-1 17:18:57

GUICtrlSetColor 同时改多控件颜色

GUICreate ("测试",500,250)

$Label1 = GUICtrlCreateLabel ( "测试1" ,12,35)
$Label2 = GUICtrlCreateLabel ( "测试2" ,12,90)
$Label3 = GUICtrlCreateLabel ( "测试3" ,12,140)
$Label4 = GUICtrlCreateLabel ( "测试4" ,12,190)
$Label5 = GUICtrlCreateLabel ( "测试5" ,130,16,80,20)

GUICtrlSetColor($Label1,0xff0000)
GUICtrlSetColor($Label2,0xff0000)
GUICtrlSetColor($Label3,0xff0000)
GUICtrlSetColor($Label4,0xff0000)
GUICtrlSetColor($Label5,0xff0000)

想简化一下,
不知道GUICtrlSetColor 后边怎么写可以实现,只用一句GUICtrlSetColor,把$Label1-5都改成红色!

无焰之火 发表于 2009-11-1 17:19:21

望大侠们给个方案,谢谢!

netegg 发表于 2009-11-1 18:14:56

$Label = GUICtrlCreateLabel ( "测试1" ,12,35)
$Label = GUICtrlCreateLabel ( "测试2" ,12,90)
$Label = GUICtrlCreateLabel ( "测试3" ,12,140)
$Label = GUICtrlCreateLabel ( "测试4" ,12,190)
$Label = GUICtrlCreateLabel ( "测试5" ,130,16,80,20)
for $i = 1 to 5
GUICtrlSetColor($Label[$i],0xff0000)
next

无焰之火 发表于 2009-11-1 20:13:10

谢谢网络鸡蛋兄弟,

我记得前段时间在哪看过一篇文章,不是用FOR的!
用FOR,等于还是把GUICtrlSetColor执行了5次,还多了循环!
不知道你还有更好的思路不?谢谢指点!

sxd 发表于 2009-11-1 21:44:43

只有如此 用循环来代替自己写代码
你用eval来 一样也是如此的方法

不过...除非你有上千上万个控件 不然的话 就复制下好了

newx 发表于 2009-11-1 22:52:22

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
GUICreate ("测试",500,250)
GUICtrlSetDefColor (0xff0000)
$Label1 = GUICtrlCreateLabel ( "测试1" ,12,35)
$Label2 = GUICtrlCreateLabel ( "测试2" ,12,90)
$Label3 = GUICtrlCreateLabel ( "测试3" ,12,140)
$Label4 = GUICtrlCreateLabel ( "测试4" ,12,190)
$Label5 = GUICtrlCreateLabel ( "测试5" ,130,16,80,20)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

131738 发表于 2009-11-2 00:00:07

lz好像只是要求标签为红色, 这样所有控件文本都是红色了........

kn007 发表于 2009-11-2 09:21:40

这样呢?#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
GUICreate ("测试",500,250)
GUICtrlSetDefColor (0xff0000)
$Label1 = GUICtrlCreateLabel ( "测试1" ,12,35)
$Label2 = GUICtrlCreateLabel ( "测试2" ,12,90)
$Label3 = GUICtrlCreateLabel ( "测试3" ,12,140)
$Label4 = GUICtrlCreateLabel ( "测试4" ,12,190)
$Label5 = GUICtrlCreateLabel ( "测试5" ,130,16,80,20)
GUICtrlSetDefColor (0x000000)
$Label5 = GUICtrlCreateLabel ( "测试6" ,190,16,80,20)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

      EndSwitch
WEnd

无焰之火 发表于 2009-11-4 22:00:36

谢谢kn007的指点!

131738 发表于 2009-11-4 23:17:24

这样呢?#include
#include
#Region ### START Koda GUI section ### Form=
GUICreate ("测试",500,250)
GUICtrlSetDefColor (0xff0000)
$Label1 = GUICtrlCreateLabel ( "测试1" ,12,35)
$Label2 = GUICtrl ...
kn007 发表于 2009-11-2 09:21 http://autoitx.com/images/common/back.gif
原来这样也行哪!
一直以为一次只能定义一个控件呢。。。
页: [1]
查看完整版本: GUICtrlSetColor 同时改多控件颜色