明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

規(guī)范設(shè)計Windows應(yīng)用軟件菜單

[摘要]在開發(fā)軟件的菜單界面時,能按Windows所設(shè)定的規(guī)范進行,不僅能使所開發(fā)出的應(yīng)用軟件的菜單界面更美觀豐富,而且能與Windows中各軟件協(xié)調(diào)一致,使大量熟悉Windows操作的用戶,一看菜單,就能根據(jù)平時的使用經(jīng)驗,觸類旁通地知曉該應(yīng)用軟件的各功能和簡捷的操作方法,增強軟件的靈活性和可操作性。 ...
在開發(fā)軟件的菜單界面時,能按Windows所設(shè)定的規(guī)范進行,不僅能使所開發(fā)出的應(yīng)用軟件的菜單界面更美觀豐富,而且能與Windows中各軟件協(xié)調(diào)一致,使大量熟悉Windows操作的用戶,一看菜單,就能根據(jù)平時的使用經(jīng)驗,觸類旁通地知曉該應(yīng)用軟件的各功能和簡捷的操作方法,增強軟件的靈活性和可操作性。

  以下以VB5.0的工具菜單欄(Tools)中的“菜單編輯器”和一個“學(xué)生檔案管理軟件”(主要有“文件”、“系統(tǒng)初始化” 、“年級”、“輸入與查詢”等菜單,分別完成報表打印、新建年級庫、選年級、以及數(shù)據(jù)庫數(shù)據(jù)的輸入與查詢等)為例,說明Windows應(yīng)用軟件菜單設(shè)計的一些規(guī)則:


一、暫時不可操作的菜單命令項一般要屏蔽變灰

  Windows菜單中有一些菜單項是以變灰的形式出現(xiàn)的,并用虛線字符來顯示,這一類的命令表示當(dāng)前不可用,也就是說,執(zhí)行此命令的條件當(dāng)前還不具備。例如,在學(xué)生檔案管理軟件中,初始的“輸入與查詢”菜單為灰,因為在沒有選中“年級”的情況下,系統(tǒng)將不知要查詢哪個年級的學(xué)生資料。在圖1中設(shè)計時,點擊“輸入與查詢”菜單條的“有效(E)”屬性,改變其默認的“有效”為“無效”,然后設(shè)計在“年級”菜單中各年級的Click事件中傳遞所選中的年級信息給“輸入與查詢”模塊后改變后者的“有效”屬性值,讓其可操作:

  Private Sub mnu98dz_Click()

   Transfer = "c:\dagl\98dz.mdb"

  mnuFind.Enabled = True

  End Sub

二、正在起作用的菜單命令旁打上選中標記(√)

  Windows中有一些命令是觸發(fā)式的,打勾號表明該命令正在起作用,否則表明不起作用,可通過點擊,反復(fù)切換。例如,在上述所舉的學(xué)生檔案管理軟件中,當(dāng)選擇了某一年級時,系統(tǒng)就在對應(yīng)年級菜單前打上“√”,表明正在操作的是此年級的數(shù)據(jù)庫。要做到這一點,只要把菜單編輯器中相應(yīng)菜單條的“復(fù)選(C)"框選中即可,然后在菜單的驅(qū)動事件加入如下語句來切換該屬性:mnu98dz.Checked=not mnu98dz.Checked


三、為命令選項設(shè)置訪問鍵(Access key)

  菜單項中帶有下劃線的字母,稱為該命令的訪問鍵,是為了方便使用鍵盤的用戶而設(shè)置的,按Alt鍵和該字母時即可打開該菜單,增加訪問鍵只要在菜單編輯器的“標題(P)”框中,在要讓其成為訪問鍵的字母前加“&”即可,當(dāng)然,訪問鍵最好不要重復(fù),否則系統(tǒng)只認定第一個有效。


四、為命令選項增加快捷鍵(Shortcut Key)

  某些菜單命令的右邊有一組合鍵,稱為該命令的快捷鍵,可以不打開菜單而直接按快捷鍵來選擇執(zhí)行此命令。為一個命令項增加一個快捷鍵,可在菜單編輯器中的“快捷鍵(S)”列表框中為該命令項分配一個,列表中一個快捷鍵只能被分配一次,否則系統(tǒng)會拒絕接受。


五、在要彈出對話框的命令選項后增加省略號(...)提示用戶

  Windows中,如果命令項后面有省略號(...),表明選擇此命令將引出一個對話框,從對話框系統(tǒng)要求用戶提供更多執(zhí)行該命令所需的信息,在設(shè)計時只要在會引出對話框的菜單項的標題后增加“(...)"提示即可。


六、用右指向的箭頭(→),來指引用戶選擇此項將引出級聯(lián)菜單(Cascading Menu)

  級聯(lián)菜單即所謂的子菜單,在VB中箭頭由系統(tǒng)根據(jù)菜單編輯器中設(shè)計菜單大綱時所安排的“縮進”度而自動實現(xiàn)的,因此,關(guān)鍵是在設(shè)計菜單時合理安排大綱中各菜單項上下級的邏輯關(guān)系,在VB中最多可以有四級子菜單。


七、對相關(guān)的命令用分隔條(Separate Bar)進行分組

  為了讓用戶迅速地在菜單中找到他要執(zhí)行的命令項,有必要對菜單中相關(guān)的一組命令用分隔條進行分組,如文件菜單中,把有關(guān)打印輸出的一組命令:“頁面設(shè)置”、“打印預(yù)覽”、“打印”等用分隔條醒目地進行分隔。這只要在需要進行分組的命令之間插入一個特殊的命令條,該命令條的“標題”為“-”,而“名稱”任意,因為在程序中一般不會引用此命令的名稱。


八、建立動態(tài)菜單,提高軟件的靈活性

  動態(tài)菜單即運行時會伸縮的菜單,Windows中有許多軟件的“文件”菜單中都具有記憶最近操作過的幾個文檔名的功能,在本文所舉例的學(xué)生檔案管理軟件中,因為每年都會有新的學(xué)生到校,在形成新的年級時,要在“年級”菜單中動態(tài)地增加新的年級名稱以供選擇和查詢,這首先要在設(shè)計時生成菜單命令的控件數(shù)組(Menu Control Array),在菜單的編輯器中加入一個菜單選項,設(shè)其Index屬性設(shè)置為0,然后可以加入名稱相同(在本例中名稱為MnuNj),Index值相鄰遞增的菜單選項(比如加入10個),設(shè)計時讓它們標題框均為空,留作日后引用填入新年級名,并設(shè)這些備用菜單條的“可見”屬性為無效,即目前不可見。在有建立和刪年級庫功能的“系統(tǒng)初始化”菜單驅(qū)動事件中引用這個數(shù)組名和索引值在“輸入與查詢”中動態(tài)地加進新的年級名選項,并讓其可見或不可見(在刪除時):

  Private AddMenu_Click()

   Counter=counter+1

   Nj=Nj+1 ’Nj是一個模塊級變量,初值為1998

   MnuNj(counter).Caption= Nj & "年級"

   MnuNj(counter).Visible=Ture

  End Sub

  Windows中許多應(yīng)用程序的“文件"菜單記住最近使使過的文件名的實際方法與此類似。

九、生成彈出式菜單,增強軟件的可操作性

  有時為了方便用戶需要,為一些最常用的命令建立右鍵彈出式快捷菜單,這種菜單的前期設(shè)計和普通菜單一樣,不同的是一般要先點擊“可見(P)”框,讓此菜單不可見,然后在窗體的MouseDown或MouseUp事件中引用PopupMenu方法來實現(xiàn)在窗體上按下鼠標右鍵時彈出此菜單:


  Private Sub MdiForm1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

   If button=2 the ’MnuEdit為制作的要彈出的菜單

Popupmenu MnuEdit

  End Sub

  PopupMenu方法將忽略初始設(shè)置的“不可見”屬性。

  使用Windows下的其他軟件開發(fā)工具設(shè)計菜單時,情形與之類似。