- 相關(guān)推薦
軟鍵盤(pán)產(chǎn)品界面顯示的通用程序設計
摘要:介紹如何利用狀態(tài)圖的分析結果把握待開(kāi)發(fā)系統的軟界面結構,完成軟鍵盤(pán)控制類(lèi)產(chǎn)品界面顯示的通用程序設計。可視頻程序的一個(gè)重要特點(diǎn)是:有大量的窗口、對話(huà)框等界面與用戶(hù)進(jìn)行交互,并根據用戶(hù)在界面上的操作進(jìn)行相應的事務(wù)處理。設計良好的用戶(hù)界面不僅可以提高用戶(hù)與軟件的交互效率,而且可以減少用戶(hù)操作與控制狀態(tài)轉換出錯的概率。好的設計界面不但要注意屏幕布局,更在充分理解待完成工作的基礎上,快速地構架系統的有效結構,使編程人員有更多的精力去實(shí)現系統的處理功能。下面介紹一種在Nucleus仿真器MNT中快速實(shí)現產(chǎn)品界面設計的經(jīng)驗。
圖1 PDA產(chǎn)品的主界面和部分功能操作界面
1 系統分析
(1)問(wèn)題的由來(lái)
嵌入式系統是一種軟、硬件結合的產(chǎn)物。一個(gè)控制類(lèi)嵌入式產(chǎn)品的軟件開(kāi)發(fā)離不開(kāi)它所依賴(lài)的硬件環(huán)境。如今有了仿真軟件的支持,使得嵌入式系統軟件與硬件的開(kāi)發(fā)可以同時(shí)進(jìn)行,也因為嵌入式開(kāi)發(fā)工具的強大,越來(lái)越多的軟鍵盤(pán)產(chǎn)品在不斷問(wèn)世。無(wú)論是仿真開(kāi)發(fā)硬鍵盤(pán)產(chǎn)品,還是開(kāi)發(fā)軟鍵盤(pán)產(chǎn)品,待開(kāi)發(fā)軟件除顯示界面之外,主要處理的是設備與外界環(huán)境的復雜交互。由于復合控制行為的數量和種類(lèi)都不可預測,導致了這類(lèi)軟件設計非常復雜,此時(shí)使用常規設計方法,難于充分保證實(shí)現每種控制行為的組合,更難于保證控制界面的逐級返回。例如,當開(kāi)發(fā)圖1所示的PDA軟鍵盤(pán)產(chǎn)品時(shí),其中每項功能的控制界面上都有眾多按鈕用于接受控制行為,根據用戶(hù)點(diǎn)擊行為的不同,進(jìn)入下一級不同的界面,或處理不同的事務(wù)。盡管有產(chǎn)品可能將固定鍵盤(pán)做成一組固定的硬件按鈕,但無(wú)論怎樣,這類(lèi)軟件都需要為不同的界面設計許多不同的控件,并處理控制行為對應的事務(wù)。因此,開(kāi)發(fā)中快速地實(shí)現界面顯示,可保證有更多的精力處理所有控制行為對應的事務(wù)。
圖2 系統記束本部分狀態(tài)轉換圖
(2)狀態(tài)圖
美國ATI公司的Nucleus嵌入式操作系統是一個(gè)嵌入式系統開(kāi)發(fā)包。該軟件包借助Visual C 的調試器和編譯器進(jìn)行程序的調試與編譯,基本控制語(yǔ)句標準C語(yǔ)句。使用其中的Nucleus MNT仿真器提供的專(zhuān)用庫函數,可以實(shí)現產(chǎn)品開(kāi)發(fā)。
為了編寫(xiě)PDA的控制軟件,首先分析整個(gè)產(chǎn)品的功能,并以狀態(tài)轉換圖進(jìn)行描述。圖2是系統記事本部分狀態(tài)轉換圖。
2 系統的實(shí)現
2.1 數據結構的建立
通過(guò)對狀態(tài)圖的分析得知,整個(gè)系統有38種功能不同的控件,共70個(gè)。在不同的界面上發(fā)生的不同控制行為決定了系統的不同轉移狀態(tài),并啟動(dòng)響應事務(wù)處理。假設全部的數據結構預先定義在pda_init.h文件中,為了完成系統設計,主要需要設計如下數據結構:控件數組、狀態(tài)控件鏈、顯示狀態(tài)鏈、顯示狀態(tài)棧。
(1)控件數組
在Nucleus MNT中,用Window CreateWindow(int wClass,char*ttl,int x,int y,int w,int h,int(*wndProc)(),unsigned long attrib)和CTRL *Control(Window wnd,int type,char name[],int x,int y,int w,int h,int id)函數,可分別創(chuàng )建窗口窗的各種控件,所以設計了一個(gè)二維int型控件數組。其中存儲的是70個(gè)控件的相關(guān)參數,函數調用時(shí),直接引用控件數組的不同分量就可以顯示出不同的控制界面?丶䲠到M的定義格式為:static int Controls[70][7];
控件屬性偏移值LeftTopWidthHeightIDControls[X][Y]Y=0Y=1Y=2Y=3Y=4Y=5Y=6Controls[X][0]:控件屬性,表示控件的類(lèi)型。例如,0表示按鈕,13表示文本輸入框,23表示圖片,29表示靜態(tài)文本框,51表示中英字符的三塊鍵盤(pán),52表示數字小鍵盤(pán),53表示號碼查詢(xún)鍵盤(pán),54表示計算器鍵盤(pán)。
Controls[X][1]:控件偏移植。作用是區分或設定同一類(lèi)型不同控件的編號。編號從0開(kāi)始。例如,對于系統中的17個(gè)按鈕可分別設置為
{0,0,50,110,60,20,5501},
{0,1,150,110,60,20,5502},
……
{0,16,230,160,35,40,5517}
系統的21個(gè)靜態(tài)文本框分別設置為
{29,17,10,15,50,30,5601},
{29,35,10,40,50,30,5619},
……
{29,38,10,15,50,30,5622},
偏移值指定的內容是需要顯示的字符串,如圖3所示。
Controls[X][2]:控件距所處窗處左邊界的距離。
Controls[X][3]:控件距所處窗體右邊界的距離。
Controls[X][4]:控件的寬度。
Controls[X][5]:控件的高度。
Controls[X][6]:控件的標識號碼,為了系統調用方便而取的編號。
圖4 界面控件鏈
(2)狀態(tài)控件鏈
控件鏈(static int StateControlList[53][6])是一個(gè)動(dòng)態(tài)的單向鏈表結構。在應用程序初始化階段,根據對pda_init.h文件中定義的界面控件靜態(tài)數組的遍歷動(dòng)態(tài)生成。當程序進(jìn)入某個(gè)界面時(shí),只要循環(huán)顯示該鏈表中的控件即可。
Static int StateControlList[53][6]數組的具體定義格式如
【軟鍵盤(pán)產(chǎn)品界面顯示的通用程序設計】相關(guān)文章:
論企業(yè)產(chǎn)品創(chuàng )新界面障礙的產(chǎn)生與消除03-15
VGA顯示與TV顯示的區別及轉換03-19
DOS界面下通用圖形編輯軟件的設計03-06
DOS用戶(hù)界面的設計03-20
設計工作的界面管理03-19
Windows 中斷程序設計03-28
靜態(tài)圖像的直接顯示03-06
Linux下的GTK圖形界面編程12-04