找回密码
 加入
搜索
查看: 1659|回复: 7

GUICtrlCreateCheckbox 反回值

[复制链接]
发表于 2009-10-30 11:37:03 | 显示全部楼层 |阅读模式
本帖最后由 We! 于 2009-10-31 21:15 编辑

請教一下, GUICtrlCreateCheckbox 只用有開、關功能上的反回值要怎麼寫?

$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 0, 0, 0, 0)
$X1 = GUICtrlCreateInput("X1", 0, 0, 0, 0)

點選複選框後開啟 $X1
GUICtrlSetData($X1, IniRead(Test.ini, "TEST", "KEY", $0))

取消點選後關閉 $X1
GUICtrlSetData($X1, IniRead(Test.ini, "TEST", "KEY", $0))

小弟 查到的都是要在點擊按鍵後再動作,能否就點選時候直接動作,一下開、一下關 這樣呢?

煩請前輩指教一下! 謝謝。
发表于 2009-10-30 12:28:00 | 显示全部楼层
If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) Then
GUICtrlSetState($X1, $gui_enable)
endif
 楼主| 发表于 2009-10-30 21:01:11 | 显示全部楼层
小弟沒把問題說的清楚,小弟的錯! 很抱歉。



#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("Form1", 633, 454, 192, 114)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
#Region ### GUI
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 104, 48, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 104, 128, 97, 17)
GUISetState(@SW_SHOW)
#EndRegion # GUI

Func _Exit()
        Exit
EndFunc

While 1
        Sleep(10000) ;這是一個重複的檢查動作
WEnd

;-------- 在這裡做出一個開、關的功能。

Func 、 If、 

;--------

while 1

;是一個被開、關的動作。

wend

;------------- 被關閉



小弟 開始學 Autoit 沒多久而已,問的問題有點無聊,

或是錯誤很多的話,還請前輩們多多見諒...。
发表于 2009-10-30 22:32:51 | 显示全部楼层
本帖最后由 netegg 于 2009-10-30 22:34 编辑

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

$Form1 = GUICreate("Form1", 633, 454, 192, 114)
#Region ### GUI
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 104, 48, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 104, 128, 97, 17)
$X1 = GUICtrlCreateInput("", 300,48, 70, 12)
GUISetState(@SW_SHOW)
while 1
        sleep(100)
WEnd

$nMsg = GuiGetMsg()
do
        Select
                Case $Checkbox1
                        GUICtrlSetState($Checkbox1, $GUI_CHECKED)
                        GUICtrlSetState($X1, $GUI_Enable)
                        GUICtrlSetData($X1, "data")
                        GUICtrlSetState($Checkbox2, $GUI_UNCHECKED)
                        check1()
                Case $Checkbox2
                        GUICtrlSetState($Checkbox2, $GUI_CHECKED)
                        GUICtrlSetData($X1, "")
                        GUICtrlSetState($X1, $GUI_Disable)
                        GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
                        check2()
    EndSelect
until $GUI_EVENT_CLOSE

       
func check1()
EndFunc
func check2()
EndFunc
大概是这样,我也没试
发表于 2009-10-31 00:17:06 | 显示全部楼层
不知道是不是这意思:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 633, 454, 192, 114)
#Region ### GUI
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 104, 48, 97, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
;$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 104, 128, 97, 17)
$X1 = GUICtrlCreateInput("X1", 300,48, 70, 17)
GUISetState(@SW_SHOW)
while 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                Case $Checkbox1
                        If BitAND(GUICtrlRead($Checkbox1), $GUI_UNCHECKED) Then
                                GUICtrlSetState($X1, $gui_Disable)
                        Else
                                GUICtrlSetState($X1, $gui_enable)
                        endif 
        EndSwitch
WEnd
 楼主| 发表于 2009-10-31 06:34:53 | 显示全部楼层
本帖最后由 We! 于 2009-10-31 06:42 编辑

嗯嗯! 就是這樣的成效。

但是我只要開啟OnEvent 函數的通知功能。(Opt("GUIOnEventMode", 1))

就會無法作用。


#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
#Region # GUI
$Form1 = GUICreate("Form1", 259, 234, 378, 189)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
$X1 = GUICtrlCreateInput("", 16, 16, 121, 21)
$Y1 = GUICtrlCreateInput("", 16, 40, 121, 21)
$X2 = GUICtrlCreateInput("", 16, 64, 121, 21)
$Y1 = GUICtrlCreateInput("", 16, 88, 121, 21)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 16, 200, 97, 17)
GUISetState(@SW_SHOW)
#EndRegion # END GUI
Dim $Click = @DesktopDir & "\AutoIt-測試2.ini"
Dim $interval = 1000 
Dim $start = 0, $continue = 1
Dim $xy = MouseGetPos()
Dim $0 = Chr ("42")
Func _Exit()
        Exit
EndFunc
While 1
                Sleep($interval)
              GUICtrlSetData($X1, IniRead($Click, "Mouse1", "X", $0))
            GUICtrlSetData($Y1, IniRead($Click, "Mouse1", "Y", $0))
            GUICtrlSetData($X2, IniRead($Click, "Mouse2", "X", $0))
WEnd
        
While $continue ;------------------------------------------------------------------ 複選框 開、關
        Sleep($interval)
        If $start Then
                $xy = MouseGetPos()
                ToolTip("X座標[ "& $xy[0 ]& " ] , [Y座標[ " & $xy[1] &" ]")
        Else
                ToolTip("按F11開啟、Pause停止。", 0, 0)
        EndIf
WEnd ;-------------------------------------------------------------------------------- 複選框

Func Terminate()
        $continue = 0
EndFunc
Func StartClick()
        $start = 1
EndFunc
Func EndClick()
   $start = 0
EndFunc 


我還是把我要的動作大約貼上,怕又說的不清楚!

http://www.dreams8.com/thread-3246-1-1.html
( 梦想吧技术论坛 &#187; 『 脚本技术专栏 』 &#187; GUICtrlCreateCheckbox复选框实例几则 )

這裡面有幾個實例,不過我把錯誤的地方寫好後,還是只有開的做用。

還是人家是沒有錯誤的? 只是我看不懂才會認為有錯誤的地方。

新學 Autoit 問題的怪怪的,還請見諒。
发表于 2009-10-31 12:33:15 | 显示全部楼层
那段源码应该没错,不好意思,上次看错了,以为你要建立两个复选框呢
 楼主| 发表于 2009-10-31 21:13:36 | 显示全部楼层
問題解決了,上面那個實例是沒問題的,是我功力太差看不懂而已。

別這麼說! 還是謝謝您的熱心幫忙。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 15:39 , Processed in 0.079993 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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