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

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

  [复制链接]
发表于 2011-11-28 10:17:09 | 显示全部楼层 |阅读模式
本帖最后由 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
 楼主| 发表于 2011-11-28 11:41:07 | 显示全部楼层
是不是应该用
GUICtrlSendMsg ( 控件ID, msg , wParam, lParam )

但是发送什么消息啊
发表于 2011-11-28 11:50:09 | 显示全部楼层
刚开始以为是你没有调用函数而不能执行,后来自己运行了下是OK的啊,可以出来MSGBOX,原来你用了@GUI_CTRLID
 楼主| 发表于 2011-11-28 11:58:49 | 显示全部楼层
回复 3# qqgghh1


    我是意思是GUICtrlSetState($radio1, $GUI_CHECKED)之后Radi()函数没有被执行,当然鼠标单击肯定会弹出msgbox的
发表于 2011-11-28 12:45:11 | 显示全部楼层
你这个是中radio后可以弹出,,你判断的不正确。
发表于 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
 楼主| 发表于 2011-11-28 13:26:24 | 显示全部楼层
回复 6# afan


    谢谢版主!
又发现用ControlClick()也能达到我的要求
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-1 07:38 , Processed in 0.074716 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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