木头人 发表于 2011-5-15 01:45:02

CASE 中能否将两个按钮的动作写在一起??[已解决]

本帖最后由 木头人 于 2011-5-16 00:12 编辑

例如这样Case $TButton1, $TButton2如果可以的话,接下来如何判断点击的是$TButton1或$TButton2 呢If GUICtrlCreateButton($TButton1) = 1 Then似乎是错误的。

happytc 发表于 2011-5-15 01:54:32

当然可以 了
如何判断,当然还是根据你case是啥判断的,比如你是采用的事件模式


Opt("GUIOnEventMode", 1)
Local $OKButton
$hwd = GUICreate("Config", 280, 230)
GUISetOnEvent(-3, "_Event")

For $i = 0 To 9
        $OKButton[$i] = GUICtrlCreateButton("OK" & $i + 1, 50, $i * 20, 50, 20)
        GUICtrlSetOnEvent(-1, "_Event")
        Assign($OKButton[$i], $i + 1)
Next

GUICtrlSetOnEvent(-1, "_Event")
GUISetState()

While 1
        Sleep(100)
WEnd

Func _Event()
        Switch @GUI_CtrlId
                Case -3
                        Exit
                Case $OKButton To $OKButton
                        MsgBox(0, "pressed", "Pressed OK Button" & Eval(@GUI_CtrlId))
        EndSwitch
EndFunc

happytc 发表于 2011-5-15 02:04:20

消息模式:

Local $OKButton, $msg
$hwd = GUICreate("Config", 280, 230)

For $i = 0 To 9
        $OKButton[$i] = GUICtrlCreateButton("OK" & $i, 50, $i * 20, 50, 20)
Next

GUISetState()

While True
        $msg = GUIGetMsg()
        Switch $msg
                Case -3
                        Exit
                Case $OKButton To $OKButton
                        MsgBox(0, "pressed", "Pressed OK Button" & $msg - 3)
        EndSwitch       
        Sleep(10)
WEnd

netegg 发表于 2011-5-15 03:14:32

回复 1# 木头人
Case $TButton1, $TButton2
        If $TButton1 Then
      Else
        EndIf

3mile 发表于 2011-5-15 10:58:57

回复 2# happytc
看着眼熟

annybaby 发表于 2011-5-15 11:06:46

回复 4# netegg


    蛋蛋的代码很简洁,赞一个~{:face (396):}

木头人 发表于 2011-5-15 22:53:00

回复 4# netegg

回复蛋蛋,试了这个代码不行。

木头人 发表于 2011-5-15 22:56:15

回复 3# happytc

谢谢,是可以实现,但是看不懂。
实际些的是有个按钮 TButton1及 tButton2,已经设置 好了
CASE $Tbutton1, $tButton2
接下来应该如何判断点击的是tButton2,或tButton1 呢

netegg 发表于 2011-5-15 23:11:16

本帖最后由 netegg 于 2011-5-15 23:18 编辑

回复 8# 木头人

switch $msg
case $tbutton1, $tbutton2
   if $msg = $tbutton1 then
          msgbox(0,0,1)
   else
         msgbox(0,0,2)
    endif
endswitch

试试看,或者索性用select
select
case$msg = $tbutton1
          msgbox(0,0,1)
case$msg = $tbutton2
         msgbox(0,0,2)
endselect

木头人 发表于 2011-5-16 00:11:11

谢谢蛋蛋,已经解决
页: [1]
查看完整版本: CASE 中能否将两个按钮的动作写在一起??[已解决]