Giá trị trả về Th. Công : Trả về 1 H ỏng : Tr ả về 0 Chú ý Bảng trạng thái State Miêu t ả Không thay đ ổi 0 $GUI_UNCHECKED Radio, Checkbox ho ặc ListViewItem sẽ không được đánh dấu (uncheck) $GUI_CHECKED Radio, Checkbox or ListViewItem s ẽ đ ư ợc đánh dấu (check) $GUI_INDETERMINATE Checkbox có ba tr ạng thái thuộc tính sẽ bị tô m àu xám $GUI_AVISTART Avi s ẽ bắt đầu play $GUI_AVISTOP Avi s ẽ dừng ch ơi $GUI_AVICLOSE Avi s ẽ dừng ch ơi và gi ải phóng t ài nguyên. $GUI_DROPACCEPTED Control s ẽ chấp nhận thao tác kéo th ả : từ file hoặc từ control khác . Xem chú ý $GUI_NODROPACCEPTED Control s ẽ không chấp nhận kéo thả $GUI_SHOW Control s ẽ hiển thị. Tr ên control Tabitem s ẽ chọn tab đầu đầu tiên để hiển thị $GUI_HIDE Control s ẽ ẩn $GUI_ENABLE Control s ẽ đ ư ợc kích hoạt để t ương tác đư ợc $GUI_DISABLE Control b ị vô hiệu không t ương tác (s ẽ bị tô m àu xám) $GUI_FOCUS Control s ẽ đ ư ợc đ ưa tiêu đi ểm đ ư ợc chọn hoặc input $GUI_NOFOCUS Listview s ẽ mất ti êu đi ểm. $GUI_DEFBUTTON Control s ẽ đ ư ợc thiết l ập nh ư nút m ặc định tr ên c ửa sổ. Xem phần chú ý đối với các TreeviewItem $GUI_EXPAND TreeViewItem m ở rộng các mục con $GUI_ONTOP Control s ẽ có thuộc tính ở - trên (ontop) đ ối với cửa sổ (zOrdering). Các trạng thái có thể được cộng lại với nhau để có đa thuộc tính , ví dụ như $GUI_DISABLE + $GUI_HIDE sẽ làm cho control bị vô hiệu và ẩn đi. Nếu control AVI bị làm ẩn với $GUI_HIDE , nó nên được đóng lại với $GUI_AVICLOSE. Trạng thái của menu ngữ cảnh "contextmenu" không thể bị thay đổi Trạng thái của menu hoặc menuitem không thể được ẩn. Trạng thái của một "listviewitem" có thể bị thay đổi nếu nó liên kết với một Listview mà listview này được tạo với style mở rộng $LVS_EX_CHECKBOXES. $GUI_FOCUS và $GUI_NOFOCUS có thể được sử dụng trên listviewitem riêng biệt , style $LVS_SHOWSELALWAYS sẽ làm cho mục được chọn luôn hiển thị thậm chí nó không có tiêu điểm. ! Thông tin quan trọng đối với $GUI_EXPAND : trạng thái này chỉ hữu dụng cho các TreeViewItem. Nếu bạn muốn sử dụng hành động này , ít nhất phải có một nhánh-con trong TreeView mà bạn đã tạo ! Nếu bạn muốn chọn mục khác trong một TreeView , bạn có thể dùng $GUI_FOCUS – TreeView mẹ sẽ lấy tiêu điểm của cửa sổ và mục được chỉ định sẽ bị đánh dấu như là được chọn Nếu muốn thiết lập một mục trong TreeView làm mục mặc định , có nghĩa là nó sẽ bị vẽ in đậm. Bạn có thể gọi $GUI_DEFBUTTON – để tắt nó thì sử dụng một giá trị khác $GUI_DEFBUTTON, chẳng hạn như 0. Trạng thái này sẽ không được trả về bởi GUICtrlGetState. Với những control có tiếp nhận $GUI_EVENT_DROPPED, macro @GUI_DRAGID sẽ trả về controlID từ nơi mà sự lôi-kéo bắt đầu (-1 nếu từ một file, @GUI_DRAGFILE chứa tên tập tin đang được kéo đi) và @GUI_DROPID trả về controlID của control được thả Chỉ việc lôi-kéo một ListViewItem sẽ khởi động tiến trình kéo và thả (drag&drop). Macro @GUI_DRAGID sẽ là ID của ListView GUICtrlSetStyle Thay đổi style cho control GUICtrlSetStyle ( controlID, style [, exStyle] ) Các tham số controlID ID c ủa control , đ ư ợc trả về từ h àm GUICtrlCreate…. style Style c ần thiết lập cho control . Xem GUI Control Styles Appendix . exStyle [tùy ch ọn] style mở rộng muốn thiết lập. Xem Extended Style Table . Giá trị trả về Th. Công : Trả về 1 H ỏng : Tr ả về 0 Chú ý Vài style không thể được thay đổi một cách linh động. Xem tài liệu MSDN. Style cho combo box $CBS_UPPERCASE là một ví dụ. Xử lý sự kiện trên GUI Khi bạn tạo ra một cửa sổ và các thành phần con trên đó thì tất nhiên chúng phải được dùng cho một mục đích mà bạn đã vạch ra , nhập liệu, vẽ, chơi nhạc, tìm kiếm file,…. Nhưng làm sao biết được rằng cái gì đang diễn ra trên GUI của bạn , phím nào vừa được nhấn ? chuột trái vừa nhấp ở đâu ? mục nào được chọn ?…. Tất cả những cái này chúng ta sẽ nắm bắt được bởi vì chúng do windows tạo ra và AutoIt sẽ cung cấp cho chúng ta cách để biết được và xử lý được những sự kiện đã và đang diễn ra trên cửa sổ. AutoIt hỗ trợ cho ta hai phương pháp để xử lý sự kiện : Sử dụng vòng lặp thông điệp Sử dụng chế độ OnEvent Vòng lặp thông điệp Trong chế độ này , bạn sẽ sử dụng một vòng lặp khép kín để nhận liên tục các sự kiện nào sẽ xảy ra trên GUI và ứng với mỗi sự kiện ta sẽ viết các lệnh tương ứng. Để nhận được các sự kiện nào đã xảy ra trên GUI ta dùng hàm GUIGetMsg. Đặc điểm của chế độ này là vòng lặp và hàm GUIGetMsg sẽ được gọi nhiều lần trong một giây. Trong trường hợp GUI là vấn đề bạn quan tâm trên cả ,và tất cả những gì bạn cần là đợi sự kiện xảy ra thì chế độ vòng lặp thông điệp sẽ rất phù hợp để bạn làm những việc này. Chế độ OnEvent OnEvent không sử dụng vòng lặp để tiếp nhận sự kiện , mà sử dụng một hàm đã định nghĩa trước đó để phản ứng lại với một sự kiện và/hoặc một control tương ứng. Khi hàm được gọi thì đoạn chương trình chính tạm dừng , hàm được gọi hoàn tất thì đoạn chương trình chính sẽ chạy trở lại. Khi GUI không phải là vấn đề quan tâm hàng đầu của bạn , và bạn còn có nhiều tác vụ khác cần xử lý bên trong đoạn chương trình chính thì OnEvent là chế độ thích hợp nhất. VÒNG LẶP THÔNG ĐIỆP Trong chế độ vòng lặp thông điệp , đoạn mã của sẽ trải qua phần lớn thời gian làm việc trong một vòng lặp khép kín. Vòng lặp này chỉ đơn giản là sử dụng các giá trị được trả về từ hàm GUIGetMsg( ) . Các giá trị đó cho biết sự kiện nào đang xảy ra trên GUI (nút được nhấn , đóng gui, ). Chế độ này chính là chế độ xử lý mặc định của AutoIt dành cho GUI. Trong chế độ vòng lặp thông điệp bạn chỉ nhận được các sự kiện khi bạn chủ động gọi và nhận từ GUIGetMsg , vì vậy bạn phải đảm bảo rằng hàm được gọi nhiều lần trong một giây , ngược lại có thể làm cho GUI của bạn không có phản ứng. Dạng cơ bản của vòng lặp thông điệp Dạng chung của vòng lặp thông điệp có thể trình bày như sau : While 1 $msg = GUIGetMsg() WEnd . Giá trị trả về Th. Công : Trả về 1 H ỏng : Tr ả về 0 Chú ý Bảng trạng thái State Miêu t ả Không thay đ ổi 0 . style mở rộng muốn thiết lập. Xem Extended Style Table . Giá trị trả về Th. Công : Trả về 1 H ỏng : Tr ả về 0 Chú ý Vài style không thể được thay đổi một cách linh động. Xem. giá trị được trả về từ hàm GUIGetMsg( ) . Các giá trị đó cho biết sự kiện nào đang xảy ra trên GUI (nút được nhấn , đóng gui, ). Chế độ này chính là chế độ xử lý mặc định của AutoIt dành cho