kenan 发表于 2011-11-28 10:17:09

如何选中单选框,不是GUICtrlSetState($radio1, $GUI_CHECKED)这么简单【已解决】

本帖最后由 kenan 于 2011-11-28 13:27 编辑

#include <ButtonConstants.au3>

#include <GUIConstantsEx.au3>

#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)

$Form1 = GUICreate("Form1", 227, 159, 192, 124)


$Radio1 = GUICtrlCreateRadio("Radio1", 160, 16, 57, 41)
GUICtrlSetOnEvent(-1, "Radio")
$Radio2 = GUICtrlCreateRadio("Radio1", 160, 64, 65, 33)
GUICtrlSetOnEvent(-1, "Radio")
$Radio3 = GUICtrlCreateRadio("Radio1", 160, 112, 65, 33)
GUICtrlSetOnEvent(-1, "Radio")
GUICtrlSetState($radio1, $GUI_CHECKED)
GUISetState(@SW_SHOW)




While 1

Sleep(1000)

WEnd
Func Radio()
        Switch @GUI_CTRLID
                Case $Radio1
                        MsgBox(0,0, @GUI_CTRLID)
                Case $Radio2
                        MsgBox(0,0, @GUI_CTRLID)
                Case $Radio3
                        Exit
        EndSwitch
EndFunc运行以上代码无法弹出msgbox

kenan 发表于 2011-11-28 11:41:07

是不是应该用
GUICtrlSendMsg ( 控件ID, msg , wParam, lParam )

但是发送什么消息啊

qqgghh1 发表于 2011-11-28 11:50:09

刚开始以为是你没有调用函数而不能执行,后来自己运行了下是OK的啊,可以出来MSGBOX,原来你用了@GUI_CTRLID

kenan 发表于 2011-11-28 11:58:49

回复 3# qqgghh1


    我是意思是GUICtrlSetState($radio1, $GUI_CHECKED)之后Radi()函数没有被执行,当然鼠标单击肯定会弹出msgbox的

zcx880517 发表于 2011-11-28 12:45:11

你这个是中radio后可以弹出,,你判断的不正确。

afan 发表于 2011-11-28 13:19:08

#include <GUIConstantsEx.au3>
#include <GuiButton.au3>

Opt("GUIOnEventMode", 1)

$Form1 = GUICreate("Form1", 227, 159, 192, 124)
GUISetOnEvent(-3, 'Radio')
$Radio1 = GUICtrlCreateRadio("Radio1", 160, 16, 57, 41)
GUICtrlSetOnEvent(-1, "Radio")
$Radio2 = GUICtrlCreateRadio("Radio1", 160, 64, 65, 33)
GUICtrlSetOnEvent(-1, "Radio")
$Radio3 = GUICtrlCreateRadio("退出", 160, 112, 65, 33)
GUICtrlSetOnEvent(-1, "Radio")
;GUICtrlSetState($radio1, $GUI_CHECKED)
GUISetState(@SW_SHOW)
_GUICtrlButton_Click($Radio1)

While 1
        Sleep(1000)
WEnd

Func Radio()
        Switch @GUI_CtrlId
                Case $Radio1
                        MsgBox(0, 0, @GUI_CtrlId)
                Case $Radio2
                        MsgBox(0, 0, @GUI_CtrlId)
                Case $Radio3, -3
                        Exit
        EndSwitch
EndFunc   ;==>Radio

kenan 发表于 2011-11-28 13:26:24

回复 6# afan


    谢谢版主!
又发现用ControlClick()也能达到我的要求
页: [1]
查看完整版本: 如何选中单选框,不是GUICtrlSetState($radio1, $GUI_CHECKED)这么简单【已解决】