dùng GUISetOnEvent hay cho control event bởi hàm GUICtrlSetOnEvent. Nếu không có chức năng được định nghĩa cho một sự kiện thì nó chỉ đơn giản là bỏ qua.? Khi bên trong này được gọi là chức năng khác nhau macros sẽ được đặt để các giá trị để giúp quá trình sự kiện này. Macro Details @GUI_CTRLID Việc kiểm soát ID của sự kiểm soát gửi tin nhắn OR hệ thống sự kiện ID @GUI_WINHANDLE handle c ủ a GUI đang s ả y ra s ự ki ệ n @GUI_CTRLHANDLE handle c ủ a control đang s ả y ra s ự ki ệ n Chú ý: Đó là hoàn toàn hợp pháp để sử dụng cùng một chức năng cho nhiều sự kiện, tất cả các bạn cần phải làm trong các trường hợp này là hành động dựa trên macro @GUI_CTRLID? Ví dụ, bạn có thể đăng ký tất cả các hệ thống vào cùng một hàm. Control Event Khi được kiểm soát nhấp chuột hoặc kiểm soát các thay đổi một sự kiện được gửi đi.? Sự kiện này là gửi đến các chức năng được xác định với GUICtrlSetOnEvent .? Bên trong người dùng được xác định chức năng @ GUI_CTRLID được đặt vào controlID đã được trả lại khi sự kiểm soát đã được tạo ra với GUICtrlCreate . System Event Hệ thống các sự kiện - ví dụ như đóng GUI - được gửi đi trong một tương tự như cách để kiểm soát sự kiện, nhưng sự kiện này được xác định bởi loại @ GUI_CTRLID.? Những sự kiện được gửi đến hàm xác định với GUISetOnEvent . Việc có thể hệ thống giá trị của sự kiện này sẽ được hiển thị ở đây: $GUI_EVENT_CLOSE $GUI_EVENT_MINIMIZE $GUI_EVENT_RESTORE $GUI_EVENT_MAXIMIZE $GUI_EVENT_PRIMARYDOWN $GUI_EVENT_PRIMARYUP $GUI_EVENT_SECONDARYDOWN $GUI_EVENT_SECONDARYUP $GUI_EVENT_MOUSEMOVE $GUI_EVENT_RESIZED $GUI_EVENT_DROPPED Example GUI Trong khi chính GUI Reference page chúng tôi bắt đầu với ví dụ Hello World như thế này: #include <GUIConstantsEx.au3> GUICreate("Hello World", 200, 100) GUICtrlCreateLabel("Hello world! How are you?", 30, 10) GUICtrlCreateButton("OK", 70, 50, 60) GUISetState(@SW_SHOW) Sleep(2000) Bây giờ chúng tôi sẽ kết thúc bằng cách sử dụng mã OnEvents và một số bài viết của các sự kiện mô tả ở trên. #include <GUIConstantsEx.au3> Opt("GUIOnEventMode", 1) ; Change to OnEvent mode $mainwindow = GUICreate("Hello World", 200, 100) GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") GUICtrlCreateLabel("Hello world! How are you?", 30, 10) $okbutton = GUICtrlCreateButton("OK", 70, 50, 60) GUICtrlSetOnEvent($okbutton, "OKButton") GUISetState(@SW_SHOW) While 1 Sleep(1000) ; Idle around WEnd Func OKButton() ;Note: at this point @GUI_CTRLID would equal $okbutton, ;and @GUI_WINHANDLE would equal $mainwindow MsgBox(0, "GUI Event", "You pressed OK!") EndFunc Func CLOSEClicked() ;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE, ;and @GUI_WINHANDLE would equal $mainwindow MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting ") Exit EndFunc Nó là đơn giản. Rõ ràng càng có nhiều cửa sổ và kiểm soát các bạn tạo thêm phức tạp, nhưng nó sẽ cho bạn thấy ở trên các điểm cơ bản. Nhiều hoạt động và nâng cao Windows Kiểm soát ID là duy nhất, ngay cả khi bạn có nhiều cửa sổ, nhưng làm thế nào để chúng tôi xử lý nhiều cửa sổ? Dưới đây là một ví dụ tương tự như trên, nhưng với một trong những khác "dummy" cửa sổ.? #include <GUIConstantsEx.au3> Opt("GUIOnEventMode", 1) ; Change to OnEvent mode $mainwindow = GUICreate("Hello World", 200, 100) GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") GUICtrlCreateLabel("Hello world! How are you?", 30, 10) $okbutton = GUICtrlCreateButton("OK", 70, 50, 60) GUICtrlSetOnEvent($okbutton, "OKButton") $dummywindow = GUICreate("Dummy window for testing ", 200, 100) GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") GUISwitch($mainwindow) GUISetState(@SW_SHOW) While 1 Sleep(1000) ; Idle around WEnd Func OKButton() ;Note: at this point @GUI_CTRLID would equal $okbutton MsgBox(0, "GUI Event", "You pressed OK!") EndFunc Func CLOSEClicked() ;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE, ;@GUI_WINHANDLE will be either $mainwindow or $dummywindow If @GUI_WINHANDLE = $mainwindow Then MsgBox(0, "GUI Event", "You clicked CLOSE in the main window! Exiting ") Exit EndIf EndFunc Keyword Reference #comments-start ghi chú trên nhiều dòng #comments-start #comments-end Tham số ko Nhận xét có thể dùng #cs #ce cũng có tác dụng tương tự hàm liên quan #include, #include-once Ví dụ #comments-start MsgBox(4096, "", "This won't be executed") MsgBox(4096, "", "Or this") #comments-end ;;; #cs MsgBox(4096, "", "This will print if '#cs' is commented out.") #ce Keyword Reference #comments-start ghi chú trên nhiều dòng #comments-start #comments-end Tham số ko Nhận xét có thể dùng #cs #ce cũng có tác dụng tương tự hàm liên quan #include, #include-once Ví dụ #comments-start MsgBox(4096, "", "This won't be executed") MsgBox(4096, "", "Or this") #comments-end