上堂課我們介紹了 KR C4 Smartpad “信息編程步驟(除對(duì)話(huà)信息)”,今天我們就再來(lái)點(diǎn)干貨,給大家介紹一下“對(duì)話(huà)信息編程步驟”!
之前第六課講過(guò),對(duì)話(huà)信息(又名對(duì)話(huà)框,下面統(tǒng)稱(chēng)對(duì)話(huà)框)與其他的信息類(lèi)型有所區(qū)別,屬于單獨(dú)的一個(gè)大類(lèi)。不過(guò)對(duì)話(huà)框編程與提示信息編程步驟大致類(lèi)似[在定義作者(來(lái)源)、編號(hào)、內(nèi)容(關(guān)鍵字),占位符,選項(xiàng)這三個(gè)步驟上],但因?qū)υ?huà)框中需要提供按鈕給用戶(hù)選擇,所以需要額外再定義按鈕按鍵,如下圖:

So, 今天“對(duì)話(huà)框編程步驟”的重點(diǎn)講解內(nèi)容就是“按鈕按鍵的編程”,那究竟怎么才能生成這些按鍵信息呢?一起往下看吧!
STEP 1 定義按鍵
使用系統(tǒng)預(yù)先構(gòu)建的結(jié)構(gòu)體 KRLMSGDLGSK_T
一個(gè)對(duì)話(huà)框中最多可以有7個(gè)按鈕按鍵,在聲明結(jié)構(gòu)體變量時(shí)一定是7個(gè)元素的數(shù)組。
decl krlmsgdlgsk_t softkey[7]
softkey[1]={sk_type #value, sk_txt[] “Four”}
softkey[1]表示第一個(gè)按鈕按鍵,#value表示這個(gè)按鍵使用了,“Four”表示按鍵上要顯示的內(nèi)容。
softkey[5]={sk_type #empty}
softkey[5]表示第五個(gè)按鈕按鍵,#empty表示這個(gè)按鍵未使用。
這7個(gè)按鍵,程序員可以決定使用哪個(gè)按鍵,不講究順序。
STEP 2 生成對(duì)話(huà)框
使用系統(tǒng)自帶的函數(shù) set_krldlg 生成信息。
函數(shù)有返回值,返回值是信息在緩存中的地址,類(lèi)型是int。
int address
address=set_krldlg(mess,para[],softkey[],option)
生成對(duì)話(huà)框的函數(shù) set_krldlg 不需要指定信息的類(lèi)型,因?yàn)閷?duì)話(huà)框只有一種類(lèi)型,另外需要將按鈕按鍵的數(shù)組作為參數(shù)傳遞進(jìn)去。
STEP 3 生成對(duì)話(huà)框的后續(xù)處理
對(duì)話(huà)框生成后一定是停著等用戶(hù)去進(jìn)行選擇的,所以讓程序進(jìn)入到一個(gè)循環(huán)中。循環(huán)一直在查詢(xún)對(duì)話(huà)框是否還在緩存中,如果沒(méi)有人去選擇,則對(duì)話(huà)框一直不消失,能查詢(xún)得到;如果被選擇了,那么對(duì)話(huà)框消失,查詢(xún)不到了。同時(shí)用戶(hù)按了哪個(gè)按鍵,通過(guò)查詢(xún)函數(shù) exists_krldlg 的第二個(gè)參數(shù)進(jìn)行反饋(在樣例代碼中為 answer )。
以下為樣例代碼:

在獲得了 answer 值之后,就可以利用程序判斷,按了哪個(gè)按鍵,該去做什么事情。

(轉(zhuǎn)載)



