規範設計Windows應用軟體選單 (轉)

worldblog發表於2007-12-04
規範設計Windows應用軟體選單 (轉)[@more@]在開發的選單介面時,能按所設定的規範進行,不僅能使所開
發出的應用軟體的選單介面更美觀豐富,而且能與Windows中各軟體協調一致,
使大量熟悉Windows操作的,一看選單,就能根據平時的使用,觸類旁通
地知曉該應用軟體的各功能和簡捷的操作方法,增強軟體的靈活性和可操作
性。
以下以VB5.0的工具選單欄(Tools)中的“選單編輯器”和一個“學生檔
案管理軟體”(主要有“”、“初始化” 、“年級”、“輸入與查
詢”等選單,分別完成報表列印、新建年級庫、選年級、以及資料的輸
入與查詢等)為例,說明Windows應用軟體選單設計的一些規則:
一、暫時不可操作的選單命令項一般要遮蔽變灰
Windows選單中有一些選單項是以變灰的形式出現的,並用虛線字元來顯
示,這一類的命令表示當前不可用,也就是說,此命令的條件當前還不具
備。例如,在學生檔案管理軟體中,初始的“輸入與查詢”選單為灰,因為在
沒有選中“年級”的情況下,系統將不知要查詢哪個年級的學生資料。在圖1
中設計時,點選“輸入與查詢”選單條的“有效(E)”屬性,改變其預設的
“有效”為“無效”,然後設計在“年級”選單中各年級的Click事件中傳遞
所選中的年級資訊給“輸入與查詢”模組後改變後者的“有效”屬性值,讓其
可操作:

Private Sub mnu98dz_Click() Traner = "c:dagl98dz.m" mnuFind.Enabled = True End Sub


二、正在起作用的選單命令旁打上選中標記(√)
Windows中有一些命令是觸發式的,打勾號表明該命令正在起作用,否則
表明不起作用,可透過點選,反覆切換。例如,在上述所舉的學生檔案管理軟
件中,當選擇了某一年級時,系統就在對應年級選單前打上“√”,表明正在
操作的是此年級的資料庫。要做到這一點,只要把選單編輯器中相應選單條的
“複選(C)"框選中即可,然後在選單的事件加入如下語句來切換該屬性:
mnu98dz.Checked=not mnu98dz.Checked
三、為命令選項設定訪問鍵(Access key)
選單項中帶有下劃線的字母,稱為該命令的訪問鍵,是為了方便使用鍵盤
的使用者而設定的,按Alt鍵和該字母時即可開啟該選單,增加訪問鍵只要在菜
單編輯器的“標題(P)”框中,在要讓其成為訪問鍵的字母前加“&”即可,
當然,訪問鍵最好不要重複,否則系統只認定第一個有效。
四、為命令選項增加(Shortcut Key)
某些選單命令的右邊有一組合鍵,稱為該命令的快捷鍵,可以不開啟選單
而直接按快捷鍵來選擇執行此命令。為一個命令項增加一個快捷鍵,可在選單
編輯器中的“快捷鍵(S)”列表框中為該命令項分配一個,列表中一個快捷
鍵只能被分配一次,否則系統會拒絕接受。
五、在要彈出對話方塊的命令選項後增加省略號(...)提示使用者
Windows中,如果命令項後面有省略號(...),表明選擇此命令將引出一
個對話方塊,從對話方塊系統要求使用者提供更多執行該命令所需的資訊,在設計時
只要在會引出對話方塊的選單項的標題後增加“(...)"提示即可。
六、用右指向的箭頭(→),來指引使用者選擇此項將引出級聯選單
(Cascading Menu)
級聯選單即所謂的子選單,在VB中箭頭由系統根據選單編輯器中設計選單
大綱時所安排的“縮排”度而自動實現的,因此,關鍵是在設計選單時合理安
排大綱中各選單項上下級的邏輯關係,在VB中最多 可以有四級子選單。
七、對相關的命令用分隔條(Separate Bar)進行分組
為了讓使用者迅速地在選單中找到他要執行的命令項,有必要對選單中相關
的一組命令用分隔條進行 分組,如檔案選單中,把有關列印輸出的一組
命令:“頁面設定”、“列印預覽”、“列印”等用分隔條醒目地進行分隔。
這隻要在需要進行分組的命令之間插入一個特殊的命令條,該命令條的“標
題”為“-”,而“名稱”任意,因為在中一般不會引用此命令的名稱。
八、建立動態選單,提高軟體的靈活性
動態選單即執行時會伸縮的選單,Windows中有許多軟體的“檔案”選單
中都具有記憶最近操作過的幾個文件名的功能,在本文所舉例的學生檔案管理
軟體中,因為每年都會有新的學生到校,在形成新的年級時,要在“年級”菜
單中動態地增加新的年級名稱以供選擇和查詢,這首先要在設計時生成選單命
令的陣列(Menu Control Array),在選單的編輯器中加入一個選單選項,
設其Index屬性設定為0,然後可以加入名稱相同(在本例中名稱為MnuNj),
Index值相鄰遞增的選單選項(比如加入10個),設計時讓它們標題框均為空留
作日後引用新年級名,並設這些備用選單條的“可見”屬性為無效4目前不可
見。在有建立和刪年級庫功能的“系統初始化”選單驅動事件中引
用這個陣列名和值在“輸入與查詢”中動態地加進新的年級名選項,並且
讓可見或不可見(在刪除時):

Private AddMenu_Click() Counter=counter+1 Nj=Nj+1 'Nj是一個模組級變數,初值為1998 MnuNj(counter).Caption= Nj & "年級" MnuNj(counter).Visible=Ture End Sub


Windows中許多應用程式的“檔案"選單記住最近使使過的檔名的實際方
法與此類似。
九、生成彈出式選單,增強軟體的可操作性
有時為了方便使用者需要,為一些最常用的命令建立右鍵彈出式快捷選單,
這種選單的前期設計和普 通選單一樣,不同的是一般要先點選“可見
(P)”框,讓此選單不可見,然後在窗體的MouseDown或 MouseUp事件中引
用PopupMenu方法來實現在窗體上按下滑鼠右鍵時彈出此選單:

Private Sub MdiForm1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If button=2 the Popupmenu MnuEdit 'MnuEdit為製作的要彈出的選單 End Sub


PopupMenu方法將忽略初始設定的“不可見”屬性。
使用Windows下的其他工具設計選單時,情形與之類似。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988332/,如需轉載,請註明出處,否則將追究法律責任。

相關文章