【已解决】请问批量创建的case如何给每个case创建新的变量。
本帖最后由 7tenlboy 于 2023-3-20 16:22 编辑GUICreate('', 220)
Local $Button, $i = 1
Local $mmm
Do
$Button[$i] = GUICtrlCreateButton('Button ' & $i, 50, 5 + 40 * $i, 120, 25)
$i += 1
Until $i = 9
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Button To $Button
MsgBox(0, '', GUICtrlRead($nMsg))
$mmm =$mmm+1
MsgBox(0, '', $mmm)
EndSwitch
WEnd
需求点击不同按钮实现不同变量, Global $msgMap[]
GUICreate('', 220)
Local $Button, $i = 1
Local $mmm
Do
$Button[$i] = GUICtrlCreateButton('Button ' & $i, 50, 5 + 40 * $i, 120, 25)
$msgMap[$Button[$i]] = '我是第' & $i & '个按钮'
$i += 1
Until $i = 9
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Button To $Button
MsgBox(0, '', $msgMap[$nMsg])
EndSwitch
WEnd
GUICreate('', 220)
Local $Button
Local $mmm
For $i = 1 To 8
$Button[$i] = GUICtrlCreateButton('Button ' & $i, 50, 5 + 40 * $i, 120, 25)
Next
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Button To $Button
$mmm = $nMsg - 2
MsgBox(0, 'wh2' & $mmm, GUICtrlRead($nMsg))
EndSwitch
WEnd 本帖最后由 7tenlboy 于 2023-3-18 17:48 编辑
这个是一种方法。但是不是理想的,手动打代码比较麻烦
GUICreate('', 220)
Local $Button, $i = 1
Local $mmm
Do
$Button[$i] = GUICtrlCreateButton('Button ' & $i, 50, 5 + 40 * $i, 120, 25)
$i += 1
Until $i = 9
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Button
MsgBox(0, '', GUICtrlRead($nMsg))
$mmm =1
MsgBox(0, '', $mmm)
Case $Button
MsgBox(0, '', GUICtrlRead($nMsg))
$mmm =2
MsgBox(0, '', $mmm)
EndSwitch
WEnd
本帖最后由 7tenlboy 于 2023-3-18 17:55 编辑
这个也是一种方法。$nMsg不是可控的变量,结果也不是理想,
GUICreate('', 220)
Local $Button, $i = 1
Local $mmm
Do
$Button[$i] = GUICtrlCreateButton('Button ' & $i, 50, 5 + 40 * $i, 120, 25)
$i += 1
Until $i = 9
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Button To $Button
MsgBox(0, '', GUICtrlRead($nMsg))
EndSwitch
WEnd
请问 如何根据按钮数量变量以实现点击$Button1 弹窗wh21 $Button2 弹窗 wh22,$Button3弹窗 wh23,$Button4弹窗 wh24,以此类推 afan 发表于 2023-3-18 18:05
很辛苦你来解答。请问还有没有不通过 GUIGetMsg() 的方法来增加变量呀。 句柄、坐标、控件内容 都可以 7tenlboy 发表于 2023-3-18 18:15
很辛苦你来解答。请问还有没有不通过 GUIGetMsg() 的方法来增加变量呀。
消息模式用 GUIGetMsg() 是最简单的,如果是事件模式则使用 @GUI_CtrlId
还有诸如查表的方法,字典、Map 之类,方法很多,看用途选用最简单合适的~
页:
[1]