Windows的通用圖形界面的出現(xiàn),使計(jì)算機(jī)用戶不必通過(guò)專門的學(xué)習(xí)就可以得心應(yīng)手地使用各種Windows的軟件。不僅如此,它還是程序設(shè)計(jì)者在設(shè)計(jì)Windows程序界面時(shí)所必須遵循的標(biāo)準(zhǔn),這在很大程度上減輕了程序設(shè)計(jì)者的負(fù)擔(dān),使他們能夠把主要精力放在問(wèn)題的求解和實(shí)現(xiàn)上。
Visual Basic(以下簡(jiǎn)稱VB)的出現(xiàn),更加簡(jiǎn)化了Windows程序界面的設(shè)計(jì)工作,只需要極少量的代碼,就能實(shí)現(xiàn)標(biāo)準(zhǔn)Win-dows應(yīng)用程序的界面。但是,如果不了解Windows程序界面設(shè)計(jì)的原則,或者不熟悉VB下界面編程的技巧,就難以設(shè)計(jì)和實(shí)現(xiàn)既符合一般標(biāo)準(zhǔn)又具有特色的界面。
界面設(shè)計(jì)的原則
界面設(shè)計(jì)具有一般性的原則,最為重要的有:
1.界面要具有一致性。一致性原則在界面設(shè)計(jì)中最容易違反,同時(shí)也最容易修改和避免。例如,在菜單和聯(lián)機(jī)幫助中必須使用相同的術(shù)語(yǔ);對(duì)話框必須具有相同的風(fēng)格等。
2.常用操作要有捷徑。常用操作的使用頻度大,應(yīng)該減少操作序列的長(zhǎng)度。例如,為文件的常用操作如打開、存盤、另存等設(shè)置快捷鍵。使常用操作具有捷徑,不僅會(huì)提高用戶的工作效率,還使得界面在功能實(shí)現(xiàn)上簡(jiǎn)潔和高效。
3.提供簡(jiǎn)單的錯(cuò)誤處理。系統(tǒng)要有錯(cuò)誤處理的功能。在出現(xiàn)錯(cuò)誤時(shí),系統(tǒng)應(yīng)該能檢測(cè)出錯(cuò)誤,并且提供簡(jiǎn)單和容易理解的錯(cuò)誤處理功能。錯(cuò)誤出現(xiàn)后系統(tǒng)的狀態(tài)不發(fā)生變化,或者系統(tǒng)要提供錯(cuò)誤恢復(fù)的指導(dǎo)。
4.提供信息反饋。對(duì)操作人員的重要操作要有信息反饋。對(duì)常用操作和簡(jiǎn)單操作的反饋可以不作要求,但是對(duì)不常用操作和至關(guān)重要的操作,系統(tǒng)應(yīng)該提供信息的反饋。
5.操作可逆。操作應(yīng)該可逆。這對(duì)于不具備專門知識(shí)的操作人員相當(dāng)有用。可逆的動(dòng)作可以是單個(gè)的操作,或者是一個(gè)相對(duì)獨(dú)立的操作序列。
6.設(shè)計(jì)良好的聯(lián)機(jī)幫助。雖然對(duì)于熟練用戶來(lái)說(shuō),聯(lián)機(jī)幫助并非必不可少,但是對(duì)于大多數(shù)不熟練用戶來(lái)說(shuō),聯(lián)機(jī)幫助具有非常重要的作用。
菜單設(shè)計(jì)的原則和編程
菜單設(shè)計(jì)有如下的一般性原則:
按照系統(tǒng)的功能來(lái)組織菜單。
要選用廣而淺的菜單樹,而不是窄而深的菜單樹。
根據(jù)菜單選項(xiàng)的含義進(jìn)行分組;并且按一定的規(guī)則排序。
菜單選項(xiàng)的標(biāo)題要力求文學(xué)簡(jiǎn)短、含義明確,并且以關(guān)鍵詞開始。
常用選項(xiàng)要設(shè)置快捷鍵。
結(jié)合以上的原則,菜單編程有以下幾方面的技術(shù)和技巧:
菜單選項(xiàng)的分組
在VB中,菜單選項(xiàng)的分組是通過(guò)菜單欄分隔橫線實(shí)現(xiàn)的。在菜單的一定位置增加一個(gè)Ca ption屬性為"-"的菜單項(xiàng),它在菜單上就表現(xiàn)為一條橫線。在許多情況下,同一個(gè)功能菜單下又可以按照菜單選項(xiàng)的功能分為幾組,這時(shí)就可以用分隔橫線來(lái)實(shí)現(xiàn)菜單項(xiàng)的分組。
常用選項(xiàng)快捷鍵的設(shè)置
打開菜單設(shè)計(jì)窗口(Menu Design Window),應(yīng)對(duì)于每個(gè)菜單選項(xiàng)有相應(yīng)的快捷鍵(Short cut)列表,在該表中選擇一個(gè)即可。需要注意的是,具有子菜單的菜單或者頂層菜單的快捷鍵不能這樣定義。按照Windows的界面設(shè)計(jì)原則,頂層菜單的快捷鍵的形式是Alt+字母鍵。
對(duì)于一些常用的功能菜單項(xiàng),有約定俗成的快捷鍵。例如,文件打開用CTRL+O,文件存盤用CRTL+S,打印用CTRL+P,等等。
為菜單選項(xiàng)定義好快捷鍵之后,菜單上該選項(xiàng)的后面就出現(xiàn)了快捷鍵的文字表示。
菜單選項(xiàng)的使能與禁止、可見與隱藏
為了表示菜單選項(xiàng)的一些特殊功能,可能要用到菜單選項(xiàng)的使能與禁止、可見與隱藏屬性。當(dāng)因?yàn)槟撤N原因使得某個(gè)選項(xiàng)所代表的功能不能被實(shí)現(xiàn)時(shí),就應(yīng)該禁止該選項(xiàng)被選中。菜單選項(xiàng)的使能與禁止是通過(guò)改變?cè)撨x項(xiàng)的Enabled屬性實(shí)現(xiàn)的。舉例來(lái)說(shuō),假設(shè)菜單選項(xiàng)名為mnuName,則禁止該選項(xiàng)可以這樣實(shí)現(xiàn):
mnuName.Enabled=False
同理,隱藏一個(gè)選項(xiàng)可以用:
mnuName.Visible=False
而使一個(gè)隱藏的選項(xiàng)恢復(fù)可見則用
mnuName.Visible=True
菜單項(xiàng)的隱藏與恢復(fù)可見常用在動(dòng)態(tài)菜單的實(shí)現(xiàn)中。
菜單項(xiàng)的動(dòng)態(tài)裝入
菜單項(xiàng)的動(dòng)態(tài)裝入是指菜單項(xiàng)的個(gè)數(shù)不固定,并且能夠在需要時(shí)動(dòng)態(tài)地裝入。最簡(jiǎn)單的例子就是文件菜單中最近打開的文件的列表。在第一次打開文件之前,該列表是空的,并且不在文件菜單中出現(xiàn);打開一個(gè)文件后,該列表不再是空的,并且文件菜單中出現(xiàn)代表被打開文件的菜單項(xiàng)。
在上面的例子里,就綜合運(yùn)用了菜單項(xiàng)的下標(biāo)屬性(Index)、標(biāo)題屬性(Caption)、可見屬性(Visible)以及菜單項(xiàng)的裝入方法(Load Method)。
具體的實(shí)現(xiàn)過(guò)程如下:
在文件菜單里增加一個(gè)菜單項(xiàng),標(biāo)題任意,并假設(shè)菜單項(xiàng)的Name屬性是opened_files_ list;
更改菜單項(xiàng)opened_files_list的可見屬性,使
opened_files_list.Visible=False
更改菜單項(xiàng)opened_files_list的下標(biāo)屬性,使
opened_files_list.Index=0
在程序中控制菜單項(xiàng)opened_files_list的動(dòng)態(tài)裝入。
假設(shè)要顯示打開過(guò)的第二個(gè)文件的文件名,并且該文件名存放在一個(gè)文件名數(shù)組opened _file_name里。需要注意的是,對(duì)于下標(biāo)為0的菜單項(xiàng),不能用Load方法。因?yàn)樵诔绦驁?zhí)行時(shí),該菜單項(xiàng)就已經(jīng)被裝入到內(nèi)存里了;另外,在菜單項(xiàng)的標(biāo)題屬性字符里的"&"字符具有特殊的含義,它的作用是在顯示該屬性字符串的同時(shí),并不顯示"&"本身,而緊跟"&"的字符在顯示時(shí)具有下劃線, 并且該字符成為熱鍵。
Visual Basic(以下簡(jiǎn)稱VB)的出現(xiàn),更加簡(jiǎn)化了Windows程序界面的設(shè)計(jì)工作,只需要極少量的代碼,就能實(shí)現(xiàn)標(biāo)準(zhǔn)Win-dows應(yīng)用程序的界面。但是,如果不了解Windows程序界面設(shè)計(jì)的原則,或者不熟悉VB下界面編程的技巧,就難以設(shè)計(jì)和實(shí)現(xiàn)既符合一般標(biāo)準(zhǔn)又具有特色的界面。
界面設(shè)計(jì)的原則
界面設(shè)計(jì)具有一般性的原則,最為重要的有:
1.界面要具有一致性。一致性原則在界面設(shè)計(jì)中最容易違反,同時(shí)也最容易修改和避免。例如,在菜單和聯(lián)機(jī)幫助中必須使用相同的術(shù)語(yǔ);對(duì)話框必須具有相同的風(fēng)格等。
2.常用操作要有捷徑。常用操作的使用頻度大,應(yīng)該減少操作序列的長(zhǎng)度。例如,為文件的常用操作如打開、存盤、另存等設(shè)置快捷鍵。使常用操作具有捷徑,不僅會(huì)提高用戶的工作效率,還使得界面在功能實(shí)現(xiàn)上簡(jiǎn)潔和高效。
3.提供簡(jiǎn)單的錯(cuò)誤處理。系統(tǒng)要有錯(cuò)誤處理的功能。在出現(xiàn)錯(cuò)誤時(shí),系統(tǒng)應(yīng)該能檢測(cè)出錯(cuò)誤,并且提供簡(jiǎn)單和容易理解的錯(cuò)誤處理功能。錯(cuò)誤出現(xiàn)后系統(tǒng)的狀態(tài)不發(fā)生變化,或者系統(tǒng)要提供錯(cuò)誤恢復(fù)的指導(dǎo)。
4.提供信息反饋。對(duì)操作人員的重要操作要有信息反饋。對(duì)常用操作和簡(jiǎn)單操作的反饋可以不作要求,但是對(duì)不常用操作和至關(guān)重要的操作,系統(tǒng)應(yīng)該提供信息的反饋。
5.操作可逆。操作應(yīng)該可逆。這對(duì)于不具備專門知識(shí)的操作人員相當(dāng)有用。可逆的動(dòng)作可以是單個(gè)的操作,或者是一個(gè)相對(duì)獨(dú)立的操作序列。
6.設(shè)計(jì)良好的聯(lián)機(jī)幫助。雖然對(duì)于熟練用戶來(lái)說(shuō),聯(lián)機(jī)幫助并非必不可少,但是對(duì)于大多數(shù)不熟練用戶來(lái)說(shuō),聯(lián)機(jī)幫助具有非常重要的作用。
菜單設(shè)計(jì)的原則和編程
菜單設(shè)計(jì)有如下的一般性原則:
按照系統(tǒng)的功能來(lái)組織菜單。
要選用廣而淺的菜單樹,而不是窄而深的菜單樹。
根據(jù)菜單選項(xiàng)的含義進(jìn)行分組;并且按一定的規(guī)則排序。
菜單選項(xiàng)的標(biāo)題要力求文學(xué)簡(jiǎn)短、含義明確,并且以關(guān)鍵詞開始。
常用選項(xiàng)要設(shè)置快捷鍵。
結(jié)合以上的原則,菜單編程有以下幾方面的技術(shù)和技巧:
菜單選項(xiàng)的分組
在VB中,菜單選項(xiàng)的分組是通過(guò)菜單欄分隔橫線實(shí)現(xiàn)的。在菜單的一定位置增加一個(gè)Ca ption屬性為"-"的菜單項(xiàng),它在菜單上就表現(xiàn)為一條橫線。在許多情況下,同一個(gè)功能菜單下又可以按照菜單選項(xiàng)的功能分為幾組,這時(shí)就可以用分隔橫線來(lái)實(shí)現(xiàn)菜單項(xiàng)的分組。
常用選項(xiàng)快捷鍵的設(shè)置
打開菜單設(shè)計(jì)窗口(Menu Design Window),應(yīng)對(duì)于每個(gè)菜單選項(xiàng)有相應(yīng)的快捷鍵(Short cut)列表,在該表中選擇一個(gè)即可。需要注意的是,具有子菜單的菜單或者頂層菜單的快捷鍵不能這樣定義。按照Windows的界面設(shè)計(jì)原則,頂層菜單的快捷鍵的形式是Alt+字母鍵。
對(duì)于一些常用的功能菜單項(xiàng),有約定俗成的快捷鍵。例如,文件打開用CTRL+O,文件存盤用CRTL+S,打印用CTRL+P,等等。
為菜單選項(xiàng)定義好快捷鍵之后,菜單上該選項(xiàng)的后面就出現(xiàn)了快捷鍵的文字表示。
菜單選項(xiàng)的使能與禁止、可見與隱藏
為了表示菜單選項(xiàng)的一些特殊功能,可能要用到菜單選項(xiàng)的使能與禁止、可見與隱藏屬性。當(dāng)因?yàn)槟撤N原因使得某個(gè)選項(xiàng)所代表的功能不能被實(shí)現(xiàn)時(shí),就應(yīng)該禁止該選項(xiàng)被選中。菜單選項(xiàng)的使能與禁止是通過(guò)改變?cè)撨x項(xiàng)的Enabled屬性實(shí)現(xiàn)的。舉例來(lái)說(shuō),假設(shè)菜單選項(xiàng)名為mnuName,則禁止該選項(xiàng)可以這樣實(shí)現(xiàn):
mnuName.Enabled=False
同理,隱藏一個(gè)選項(xiàng)可以用:
mnuName.Visible=False
而使一個(gè)隱藏的選項(xiàng)恢復(fù)可見則用
mnuName.Visible=True
菜單項(xiàng)的隱藏與恢復(fù)可見常用在動(dòng)態(tài)菜單的實(shí)現(xiàn)中。
菜單項(xiàng)的動(dòng)態(tài)裝入
菜單項(xiàng)的動(dòng)態(tài)裝入是指菜單項(xiàng)的個(gè)數(shù)不固定,并且能夠在需要時(shí)動(dòng)態(tài)地裝入。最簡(jiǎn)單的例子就是文件菜單中最近打開的文件的列表。在第一次打開文件之前,該列表是空的,并且不在文件菜單中出現(xiàn);打開一個(gè)文件后,該列表不再是空的,并且文件菜單中出現(xiàn)代表被打開文件的菜單項(xiàng)。
在上面的例子里,就綜合運(yùn)用了菜單項(xiàng)的下標(biāo)屬性(Index)、標(biāo)題屬性(Caption)、可見屬性(Visible)以及菜單項(xiàng)的裝入方法(Load Method)。
具體的實(shí)現(xiàn)過(guò)程如下:
在文件菜單里增加一個(gè)菜單項(xiàng),標(biāo)題任意,并假設(shè)菜單項(xiàng)的Name屬性是opened_files_ list;
更改菜單項(xiàng)opened_files_list的可見屬性,使
opened_files_list.Visible=False
更改菜單項(xiàng)opened_files_list的下標(biāo)屬性,使
opened_files_list.Index=0
在程序中控制菜單項(xiàng)opened_files_list的動(dòng)態(tài)裝入。
假設(shè)要顯示打開過(guò)的第二個(gè)文件的文件名,并且該文件名存放在一個(gè)文件名數(shù)組opened _file_name里。需要注意的是,對(duì)于下標(biāo)為0的菜單項(xiàng),不能用Load方法。因?yàn)樵诔绦驁?zhí)行時(shí),該菜單項(xiàng)就已經(jīng)被裝入到內(nèi)存里了;另外,在菜單項(xiàng)的標(biāo)題屬性字符里的"&"字符具有特殊的含義,它的作用是在顯示該屬性字符串的同時(shí),并不顯示"&"本身,而緊跟"&"的字符在顯示時(shí)具有下劃線, 并且該字符成為熱鍵。