找回密码
 加入
搜索
查看: 8589|回复: 27

[AU3基础] [已解决]关于检测GUICtrlCreateRadio状态并执行相应的代码的用法,求指导

 火.. [复制链接]
发表于 2012-4-15 19:31:14 | 显示全部楼层 |阅读模式
本帖最后由 邪恶海盗 于 2012-4-21 19:36 编辑

以下为截取的一段代码,求高手指导...

$Radio1=GUICtrlCreateRadio("方式一", 32, 65)
$Radio2=GUICtrlCreateRadio("方式二", 105, 65)
GUICtrlCreateInput($e, 31, 85, 165, 30)
默认选择1,同时检测三个按键的状态,若选中1则$e=5;若选中2则$e=6

评分

参与人数 1金钱 +10 收起 理由
afan + 10

查看全部评分

发表于 2012-4-15 19:36:39 | 显示全部楼层
不明白,lz问操作的问题连代码都不上吗?
发表于 2012-4-15 19:43:21 | 显示全部楼层
回复 2# netegg


    建议楼主先去学帮助。。。。
发表于 2012-4-15 20:24:17 | 显示全部楼层
回复 1# 邪恶海盗
多点耐心看下帮助文档, 就能整明白了, 为什么现在的人总是没耐心?
花点时间在论坛搜索一下相关内容也就有了不少相关示例, 为什么更多的人是愿意把时间花在发帖及等待上面呢?
是时代不同了? 我等落伍了罢!?
发表于 2012-4-15 20:24:22 | 显示全部楼层
查看帮助GUICtrlRead
发表于 2012-4-15 20:52:42 | 显示全部楼层
楼主的意思是   用单选  来控制   输入 的 数字?
发表于 2012-4-15 21:06:32 | 显示全部楼层
相比之下多是回答问题的老师没耐心…(或者仅仅是回复)所有人都是从新手过来的,多多谅解些吧!
发表于 2012-4-15 21:08:23 | 显示全部楼层
小弟在论坛找了个源码,也许有用,偶去吃饭先。
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>

$Form1 = GUICreate("Form1", 223, 249, 445, 117)
$LabelPrefix = GUICtrlCreateLabel("电脑名称前缀", 24, 64, 76, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
$Labelbjxh = GUICtrlCreateLabel("本机序号", 24, 96, 50, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
$Labelbjmc = GUICtrlCreateLabel("本机名称", 24, 32, 48, 20, $SS_CENTERIMAGE)
$InputPrefix = GUICtrlCreateInput("电脑", 104, 64, 100, 21)
$Inputbjxh = GUICtrlCreateInput("01", 104, 96, 100, 21)

Local $dnmc1,$dnmc2,$dnmc3
$dnmc1=GUICtrlRead ( $InputPrefix )
$dnmc2=GUICtrlRead ( $Inputbjxh )
$Inputbjmc = GUICtrlCreateInput($dnmc1&$dnmc2, 104, 32, 100, 21)
GUISetState(@SW_SHOW)
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                                EndSwitch
$dnmc1=GUICtrlRead ( $InputPrefix )
$dnmc2=GUICtrlRead ( $Inputbjxh )
$dnmc3=GUICtrlRead ( $Inputbjmc )
If $dnmc3 <> $dnmc1&$dnmc2 Then GUICtrlSetData ( $Inputbjmc , $dnmc1&$dnmc2 )
WEnd
发表于 2012-4-15 21:21:39 | 显示全部楼层
相比之下多是回答问题的老师没耐心…(或者仅仅是回复)所有人都是从新手过来的,多多谅解些吧!
vigiles 发表于 2012-4-15 21:06



    提问方式与是否是新手无任何联系。

评分

参与人数 1金钱 +8 收起 理由
user3000 + 8 对头, 这是学习态度及方法的问题!

查看全部评分

发表于 2012-4-15 22:29:08 | 显示全部楼层
本帖最后由 netegg 于 2012-4-16 05:18 编辑
相比之下多是回答问题的老师没耐心…(或者仅仅是回复)所有人都是从新手过来的,多多谅解些吧!
vigiles 发表于 2012-4-15 21:06

问问题的问不明白难道说会回答的人没耐心吗,是不是有点本末倒置了

另外,难道你看的懂问题?三个按键在什么地方?是控件还是模拟按键?如果是前者,这三行代码里找来找去也就找到两个按键类的控件,试问这是谁的问题?
总不至于把input也作为按键类控件算吧,那就多了,可不至三个了

评分

参与人数 1金钱 +10 收起 理由
haijie1223 + 10 现在有这么一帮人。。。烦

查看全部评分

 楼主| 发表于 2012-4-16 21:21:43 | 显示全部楼层
本帖最后由 邪恶海盗 于 2012-4-16 21:23 编辑
#include <GUIConstantsEx.au3>
#NoTrayIcon
#Region ### START Koda GUI section ### Form=
$WinMain = GUICreate("Example", 270, 215)
$e1 = ("5")
$e2 = ("6")
$e3 = ("7")
$Radio1 = GUICtrlCreateRadio("方式一", 32, 65)
$Radio2 = GUICtrlCreateRadio("方式二", 105, 65)
$Radio3 = GUICtrlCreateRadio("方式三", 168, 65)
GUICtrlSetState($Radio1, $GUI_CHECKED)
If GUICtrlRead($Radio1) = $GUI_CHECKED Then $e = $e1
If GUICtrlRead($Radio2) = $GUI_CHECKED Then $e = $e2
If GUICtrlRead($Radio3) = $GUI_CHECKED Then $e = $e3

GUICtrlCreateInput($e, 31, 85, 165, 30)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
        $msg = GUIGetMsg()
        Switch $msg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd
自己捣腾了一下,成功了,现在的问题是GUICtrlCreateInput输入框的数据怎么在点选的时候自动刷新...

感谢魔导提供的思路,高中毕业水平且从来没学过编程的表示鸭梨山大...
发表于 2012-4-16 21:35:59 | 显示全部楼层
回复 11# 邪恶海盗

"现在的问题是GUICtrlCreateInput输入框的数据怎么在点选的时候自动刷新..."
控件数据刷新要自己刷新, 自动刷新要注册系统信息:
GuiCtrlSetData('控件ID', '(新)数据')
发表于 2012-4-16 21:40:15 | 显示全部楼层
自己再收拾收拾还可以更好看
#include <GUIConstantsEx.au3>
#NoTrayIcon
#Region ### START Koda GUI section ### Form=
Local $e
$WinMain = GUICreate("Example", 270, 215)
$e1 = ("5")
$e2 = ("6")
$e3 = ("7")
$Radio1 = GUICtrlCreateRadio("方式一", 32, 65)
$Radio2 = GUICtrlCreateRadio("方式二", 105, 65)
$Radio3 = GUICtrlCreateRadio("方式三", 168, 65)
GUICtrlSetState($Radio1, $GUI_CHECKED)
AdlibRegister("MyAdlib")
$sinput = GUICtrlCreateInput($e, 31, 85, 165, 30)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
        $msg = GUIGetMsg()
        Switch $msg
                Case-3
                        Exit

        EndSwitch
        WEnd

Func MyAdlib()
If GUICtrlRead($Radio1) = $GUI_CHECKED Then GUICtrlSetData($sinput,$e1)
If GUICtrlRead($Radio2) = $GUI_CHECKED Then GUICtrlSetData($sinput,$e2)
If GUICtrlRead($Radio3) = $GUI_CHECKED Then GUICtrlSetData($sinput,$e3)
EndFunc
 楼主| 发表于 2012-4-16 22:58:22 | 显示全部楼层
回复 13# 502762378


    脚本没问题,不过好像不能手动输入了,自动刷新的时候会刷掉...
发表于 2012-4-16 23:25:12 | 显示全部楼层
本帖最后由 netegg 于 2012-4-16 23:41 编辑

还纠结呢
[au3]while 1
  switch $msg
        case $radio1
                If guictrlread($radio1) = 1 Then ;1选中
                      if bitand(guictrlread($radio2), guictrlread(radio3)) = 1 then
                                consolewrite('1,2,3全选')
                      else
                           if guictrlread($radio2) = 1 Then
                                   ConsoleWrite('1,2选中')
                                Else
                                   ConsoleWrite('1,3选中')
                           EndIf
                    endif
               Else
                   If bitand(guictrlread($radio2), guictrlread(radio3)) = 1 then
                           ConsoleWrite('2,3选中')
                   else
                           if guictrlread($radio2) = 1 Then
                                   ConsoleWrite('2选中')
                                Else
                                   ConsoleWrite('3选中')
                           EndIf
                   endif
              Endif
..................
[/au3]
这只是第一个单选点击后选中的情况,剩下的一样

tmd, 就两个单选呀,想多了
[au3]while 1
  switch $msg
        case $radio1
                If guictrlread($radio1) = 1 Then ;1选中bi
                      if guictrlread($radio2) = 1 then
                                consolewrite('1,2全选')
                      else
                                ConsoleWrite('1选中')
                      EndIf
                  endif
               Else
                      if guictrlread($radio2) = 1 then
                                consolewrite('2选中')
                      else
                                ConsoleWrite('无选中')
                      EndIf

              Endif
..................
[/au3]
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-19 05:47 , Processed in 0.100767 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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