欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

GUI 概論

AutoIt 有能力創(chuàng)建簡(jiǎn)單的用戶(hù)圖形界面(GUI), GUI 由窗口和控件組成.

 

GUI 概念

GUI 由一或多個(gè)窗口組成, 每個(gè)窗口都包含一或多個(gè)控件.

GUI 靠 "事件驅(qū)動(dòng)", 意味著你對(duì)事件作出的反應(yīng) - 如按鈕點(diǎn)擊.

你要花費(fèi)大部分閑置時(shí)間等待事件發(fā)生 - 當(dāng)事件發(fā)生時(shí), 則根據(jù)事件執(zhí)行相關(guān)操作!

您可以想象自己在門(mén)前等郵差 - 你坐在那里,直到有信被送進(jìn)來(lái)為止.
這就是 GUI 的工作狀態(tài). 您等待的是郵差,而 GUI 則等待事件

當(dāng)然,在 GUI 運(yùn)行時(shí)您也可以選擇要做的其它任務(wù),比如使用 GUI 函數(shù)創(chuàng)建一個(gè)自動(dòng)更新的動(dòng)態(tài)的進(jìn)度條,
同時(shí)還可執(zhí)行其它復(fù)雜的任務(wù).

 

GUI 控件

所有用戶(hù)應(yīng)該都對(duì)控件非常了解了, 在窗口上能被點(diǎn)擊或進(jìn)行其它交互的部分都是控件的一種.

AutoIt 可創(chuàng)建的控件類(lèi)型有如下幾種(您肯定已在其它 Windows 程序中見(jiàn)過(guò)它們了):

  • Label
純文字控件(標(biāo)簽控件).
  • Button
按鈕控件.
  • Input
單行編輯控件,可供輸入文字.
  • Edit
多行編輯控件,可供輸入文字.
  • Checkbox
復(fù)選框控件,可選中或取消選.
  • Radio
單選框控件, - 通常幾個(gè)一組,每次只能激活/選中其中一個(gè).
  • Combo
組合控件,帶有下拉列表.
  • List
列表框控件.
  • Date
日期控件.
  • Pic
圖片控件.
  • Icon
圖標(biāo)控件.
  • Progress
進(jìn)度條控件.
  • Tab
標(biāo)簽頁(yè)控件,包含多個(gè)標(biāo)簽.
  • UpDown
具有上下箭頭的控件,具有調(diào)控功能.
  • Avi
顯示 AVI 格式剪輯的控件.
  • Menu
位于窗口頂部的菜單控件.
  • ContextMenu
右鍵菜單控件.
  • TreeView
類(lèi)似 Windows 文件資源管理器的樹(shù)型視圖控件.
  • Slider
類(lèi)似 Windows 的音量調(diào)整控件.
  • ListView
單列顯示項(xiàng)目信息的列表控件.
  • ListViewItem
多列顯示項(xiàng)目信息的列表控件.
  • Graphic
圖形控件 使用 GUICtrlSetGraphic 函數(shù)繪制圖形.
  • Dummy
虛擬的用戶(hù)控件.

 

下面是一個(gè) GUI 示例, 它包含許多 AutoIt 支持的控件. 從中我們可以看到 AutoIt 確實(shí)可以創(chuàng)建內(nèi)容非常豐富的 GUI!

 

控件是由 GUICtrlCreate... 類(lèi)函數(shù)創(chuàng)建的. 在創(chuàng)建時(shí)函數(shù)會(huì)返回 控件ID .

關(guān)于控件 ID 有幾個(gè)注意事項(xiàng):

 

GUI 基本函數(shù)

下面這些是用于創(chuàng)建 GUI 的基本函數(shù). 如果您已經(jīng)準(zhǔn)備好創(chuàng)建更高級(jí)的 GUI,則還有其它高級(jí)的函數(shù).

函數(shù)名稱(chēng) 函數(shù)說(shuō)明
GUICreate 創(chuàng)建一個(gè)窗口.
GUICtrlCreate... 創(chuàng)建窗口各種控件.
GUISetState 顯示或隱藏窗口.
GUIGetMsg 查詢(xún) GUI, 檢測(cè)是否有事件發(fā)生 (僅用于消息循環(huán)模式)
GUICtrlRead 讀取控件的數(shù)據(jù).
GUICtrlSetData 設(shè)置或修改控件的數(shù)據(jù).
GUICtrlUpdate... 更改控件的各種選項(xiàng) (顏色, 樣式, 等等.)

 

在編寫(xiě) GUI 腳本之前,需先將 #include <GUIConstantsEx.au3> 代碼寫(xiě)到腳本開(kāi)頭位置.
該文件包含 GUI 的相關(guān)常數(shù).

其他包含文件 包含創(chuàng)建 GUI 各種不同控件的相關(guān)常數(shù).

 

下例先創(chuàng)建一個(gè)窗口, 把它命名為"您好,世界", 設(shè)置其長(zhǎng)寬分別為200和100個(gè)象素.

當(dāng)窗口被創(chuàng)建時(shí)它是隱藏的, 所以我們還要先把它給顯示出來(lái).

#include <GUIConstantsEx.au3>

GUICreate("您好,世界", 200, 100)
GUISetState(@SW_SHOW)
Sleep(2000)

 

運(yùn)行上面的腳本您會(huì)看到出現(xiàn)一個(gè)窗口并在兩秒后消失. 看來(lái)還不是很有意思哦...

那讓我們嘗試增加一些文字和一個(gè)"確定"按鈕到窗口上吧!

我們把文字加到 30, 10 這個(gè)位置, 并把按鈕放到 70, 50 這個(gè)位置,按鈕寬度設(shè)為 60 個(gè)象素

#include <GUIConstantsEx.au3>

GUICreate("您好,世界", 200, 100)
GUICtrlCreateLabel("您好,世界! 你過(guò)得怎么樣?", 30, 10)
GUICtrlCreateButton("確定", 70, 50, 60)
GUISetState(@SW_SHOW)
Sleep(2000)

 

好, 現(xiàn)在看來(lái)相當(dāng)不錯(cuò), 但是怎樣使這個(gè) GUI 能響應(yīng)我們點(diǎn)擊按鈕的事件呢?

這時(shí)我們必須先決定究竟如何處理事件:

要么通過(guò)消息循環(huán)(MessageLoop);要么通過(guò)事件模式(OnEvent) 函數(shù).

 

GUI 事件模式

如上所述有兩個(gè)基本的 GUI 模式: 消息循環(huán)(MessageLoop)模式與事件(OnEvent)模式.

這兩種模式是響應(yīng) GUI 事件的不同實(shí)現(xiàn)方式.

具體選擇哪一種模式主要看您的個(gè)人喜好,并在一定程度上取決于創(chuàng)建的 GUI 類(lèi)型,

只不過(guò)某些時(shí)候使用其中一個(gè)會(huì)比另外一個(gè)要好用些.

消息循環(huán)是默認(rèn)的模式, 若要切換為 OnEvent 事件模式, 請(qǐng)使用 Opt("GUIOnEventMode", 1).

 

消息循環(huán)模式(Message-loop) (默認(rèn))

在消息循環(huán)模式下, 腳本大部分時(shí)間都在執(zhí)行一個(gè)周期非常短的循環(huán), 這個(gè)循環(huán)通知 GUI 使用GUIGetMsg 函數(shù)截獲消息.

當(dāng)某個(gè)事件發(fā)生時(shí), GUIGetMsg 函數(shù)的返回值將顯示事件的詳細(xì)信息(如按鈕點(diǎn)擊, GUI 關(guān)閉, 等等.).

在此模式下, 只有頻繁地使用 GUIGetMsg 函數(shù)時(shí)才有可能接收到事件,

因此您必須確保每秒時(shí)間內(nèi)多次調(diào)用該函數(shù),否則您的 GUI 將無(wú)法響應(yīng)事件.

這一模式最適合用于那些以 GUI 為重點(diǎn)的腳本中, 并且您最關(guān)心的就是等待用戶(hù)事件.

查看這里 了解關(guān)于 消息循環(huán)模式 更詳細(xì)的解釋.

 

事件模式(OnEvent)

在OnEvent模式下, 腳本并不需要頻繁地要求 GUI 檢查是否有任何事件發(fā)生(并根據(jù)返回信息處理事件),

而是僅當(dāng)某個(gè)事件發(fā)生時(shí), GUI 才臨時(shí)性暫停腳本, 并調(diào)用一個(gè)用戶(hù)預(yù)定義的函數(shù)來(lái)處理該事件.

例如, 假定用戶(hù)點(diǎn)擊了按鈕1, 則 GUI 將暫停主腳本并調(diào)用某個(gè)預(yù)定義的用戶(hù)函數(shù)來(lái)處理按鈕1事件.

當(dāng)該函數(shù)完成處理操作后才回到主腳本繼續(xù)執(zhí)行.這個(gè)模式比較類(lèi)似 Visual Basic 的窗體方法.

這一模式最適合用于那些 GUI 處于次要地位,并且需要優(yōu)先執(zhí)行其它任務(wù)的的腳本中

查看這里 了解關(guān)于 事件模式 更詳細(xì)的解釋.

 

provider with jb51.net (unicode)