版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第8章 應(yīng)用界面設(shè)計 用戶界面是應(yīng)用程序的重要組成部分之一,一個設(shè)計良好的應(yīng)用程序,其可用性很大程度上取決于程序界面的清晰和各種功能布局的合理。VB除了提供了一些標(biāo)準(zhǔn)常規(guī)控件外,還提供了菜單和大量的ActiveX高級控件。合理利用這些控件,可以使應(yīng)用程序更加符合Windows的風(fēng)格,同時也具有靈活性和便捷性。 本章將介紹VB用戶界面設(shè)計的高級技術(shù),主要包括菜單欄、工具欄、狀態(tài)欄和通用對話框,它們都是構(gòu)成應(yīng)用程序界面的重要組成部分?!局饕獌?nèi)容】 菜單編輯器的使用 下拉式菜單與彈出式菜單的建立 工具欄與狀態(tài)欄的使用 通用對話框的使用8.1 引例8.2 設(shè)計菜單8.3 工具欄和狀態(tài)欄8.4 通用對話
2、框本章小結(jié)【例8.1】設(shè)計一個簡單的菜單應(yīng)用程序,通過使用菜單操作完成程序中的打開“文件”對話框的功能,程序運行結(jié)果如圖8.1(a),圖8.1(b)所示。 8.1 引例圖8.1(a) 【例8.1】運行結(jié)果a圖8.1(b) 【例8.1】運行結(jié)果b操作步驟:(1)設(shè)計用戶界面 根據(jù)圖8.1(a)的要求此程序要求設(shè)計菜單,在VB中,菜單被看作是一種特殊類型的控件:菜單控件。菜單中的每一個菜單項,都是獨立的菜單控件對象。在窗體上添加菜單需要使用“菜單編輯器”。選擇“工具”菜單中的“菜單編輯器”命令,調(diào)出“菜單編輯器”,如圖8.1(c)所示。圖8.1(c) “菜單編輯器”對話框 在“菜單編輯器”中進(jìn)行相
3、應(yīng)的設(shè)置,在“標(biāo)題”文本框中輸入“文件(&F),在“名稱”文本框中輸入file,完成“文件”菜單的創(chuàng)建。單擊“下一個”在“標(biāo)題”文本框中輸入“新建(&N)”,在“名稱”文本框中輸入Newfile,并在“快捷鍵”列表框中選擇Ctrl+N。通過“”和“”按鈕來改變菜單的層次。由于“新建”菜單項是“文件”菜單的一級子菜單,因此在完成上述設(shè)置之后,應(yīng)單擊右箭頭“”,這時“新建”菜單項前面會出現(xiàn)“.”,成為“文件”菜單下的一級子菜單。用同樣的方法輸入如圖8.1(d)所示內(nèi)容,注意每個菜單項都要有相應(yīng)的名稱,以方便在編寫代碼時調(diào)用。對于“編輯”、“格式”、“查看”和“幫助”只設(shè)置其主菜單項即可。圖8. 1
4、(d) 菜單編輯器設(shè)置 程序中還使用了“打開”文件對話框,在VB中這一功能可利用通用對話框控件(CommonDialog)來實現(xiàn)。具體操作步驟如下 :A 執(zhí)行“工程”菜單中的“部件”命令,打開如圖8.1(e)所示“部件”對話框。 圖8.1(e) “部件”對話框B 在“部件”中對話框選擇“控件”選項卡,然后在控件列表框中選擇“Microsoft Common Dialog Control 6.0”。C 單擊“確定”按鈕,通用對話框被添加到工具箱中,如圖8. 1(f)所示。 通用對話框控件圖8.1(f) 通用對話框 將通用對話框控件放置到窗體上任意位置(運行時此控件不可見),設(shè)置通用對話框name
5、屬性為Cd1。選中通用對話框控件單擊右鍵出現(xiàn)如圖8.1(g)所示“屬性”對話框。圖8.1(g) “屬性頁”對話框 進(jìn)行如圖8.1(h)所示最簡單的設(shè)置,要求初始化路徑為E:盤根目錄,單擊“確定”,最后在窗體上添加一文本框即可。圖8.1(h) “屬性頁”對話框設(shè)置(2)代碼編寫 在圖8.1(i)所示界面,選擇“文件”中的“打開”雙擊,進(jìn)入代碼編寫窗口,編寫如代碼:圖8.1(i) 程序運行前界面Private Sub file_open_Click() file_open是“文件”“打開”菜單的名字 Cd1.ShowOpen Cd1是通用對話框的nameEnd Sub 運行程序后,單擊窗體上的“文
6、件”,出現(xiàn)圖8.1(a)所示運行界面,單擊“打開”或直接按“O”鍵,出現(xiàn)圖8.1(b)所示運行界面。 說明:(1)VB中制作菜單是使用菜單編輯器來實現(xiàn)的,具體有關(guān)菜單編輯器的使用將在本章做詳細(xì)講解。(2)“通用對話框”僅用于應(yīng)用程序與用戶之間的信息交互,是輸入輸出的界面,不能實現(xiàn)打開文件。如果想要實現(xiàn)這些功能需要編寫相應(yīng)程序。(3)“通用對話框”還可以進(jìn)行其它的設(shè)置,本章將進(jìn)行一一講解。8.2.1 菜單編輯器的使用8.2.2 運行時改變菜單屬性8.2.3 彈出式菜單 8.2 設(shè)計菜單8.2 設(shè)計菜單 在Windows環(huán)境下,幾乎所有的軟件都有菜單,菜單是將應(yīng)用程序所能完成的任務(wù)有機(jī)的組織起來以
7、方便用戶的使用。而且這些菜單從構(gòu)成、組織到操作方法甚至快捷鍵都非常相似。用戶界面是否友好是衡量一個應(yīng)用軟件開發(fā)水平的重要標(biāo)志,而菜單是用戶界面的重要組成部分。 菜單最大特點是把程序的功能以菜單的形式列出,用戶需要的時候可以選擇使用。對于可視語言來說,菜單的設(shè)計要簡單和直觀得多,全部設(shè)計都在一個窗口內(nèi)完成。利用這個窗口,可以建立下拉式菜單,最多可達(dá)6層。每一個菜單項對應(yīng)于一段程序的執(zhí)行,類似于執(zhí)行一個命令。VB支持Windows的下拉式和彈出式兩種類型的菜單。 以一個簡單的應(yīng)用程序的界面為例,介紹組成菜單的基本元素(如所示)。菜單欄由多個菜單名(也叫主菜單)組成,如“文件”、“編輯”等都是菜單標(biāo)
8、題。某一個菜單標(biāo)題下拉出一個菜單,包含一個或者多個菜單項,如圖8.2 所示。圖8.2 菜單的組成元素菜單標(biāo)題菜單欄快捷鍵菜單項分隔線8.2.1 菜單編輯器的使用 VB中的菜單通過菜單編輯器,即菜單設(shè)計窗口建立。可以通過以下4種方式進(jìn)入菜單編輯器:1 打開“工具”菜單,選擇“菜單編輯器”;2 單擊工具欄中的“菜單編輯器”按鈕;3 使用快捷鍵Ctrl+E;4 在要建立菜單的窗體上單擊鼠標(biāo)右鍵,將彈出一個菜單,如圖8.3所示,然后單擊“菜單編輯器”命令。圖8.3 用彈出式菜單打開菜單編輯器窗口 使用上面4種方法中的一種,打開菜單編輯器窗口如圖8.1(c)所示,具體內(nèi)容如下:(1)標(biāo)題 “標(biāo)題”框用于
9、設(shè)置在菜單欄上顯示的文本。如果菜單打開的是一個對話框,在標(biāo)題文本后面應(yīng)加“”如果菜單要通過鍵盤來執(zhí)行相應(yīng)操作,使某一字符成為該菜單項的訪問鍵,可以用“(&+訪問字符)”的格式,訪問字符一般是菜單標(biāo)題的第一個字母,或者是別的更易記的字符,兩個同級菜單項不能用同一個訪問字符。在運行時訪問字符會自動加上一條下劃線,“&”字符則不可見。如圖8.1(d)所示的,按Alt+F可打開“文件”菜單,再按“O”鍵就打開了“打開”菜單項。(2)名稱 在“名稱”文本框中,設(shè)置在代碼中引用該菜單項的名字。菜單項名字應(yīng)當(dāng)唯一,但不同菜單中子菜單項可以重名。(3)快捷鍵 可以在快捷鍵組合框中輸入快捷鍵,也可以選取功能鍵或
10、鍵的組合來設(shè)置??旖萱I將自動出現(xiàn)在菜單上,要刪除快捷鍵應(yīng)選取列表項頂部的“(none)”。例如:為“新建”菜單項創(chuàng)建快捷鍵Ctrl+N,在運行時按Ctrl+N將實現(xiàn)與單擊“新建”菜單項相同的操作。 菜單條上的第一級菜單不能設(shè)置快捷鍵。(4)其它屬性 幫助上下文:指定一個唯一的數(shù)值作為幫助文本的標(biāo)識符,可根據(jù)該數(shù)值在幫助文件中查找適當(dāng)?shù)膸椭黝}。 協(xié)調(diào)位置:與OLE功能有關(guān),一般取0值。 復(fù)選(Checked)屬性: 如果選中(),在初次打開菜單項時,該菜單項的左邊顯示“”。在菜單條上的第一級菜單不能使用該屬性。 有效(Enabled)屬性: 如果選中(),在運行時以清晰的文字出現(xiàn);未選中則在運
11、行時以灰色的文字出現(xiàn),不能使用該菜單項。 顯示窗口列表(WindowList)屬性: 當(dāng)菜單要包括一個打開的所有MDI(多文檔界面)子窗口的列表時,選中()此項。 (5)移動、插入、刪除菜單項 當(dāng)需要創(chuàng)建下一個子菜單時,可選取“下一個”或者單擊“插入”按鍵。單擊“”按鈕,縮進(jìn)級前加四個點();單擊“”按鈕則刪除一個縮進(jìn)級。 “”或“”按鈕:上移或者下移所選菜單項。 “插入”和“刪除”按鈕:插入和刪除菜單項。 (6)分隔條 分隔條為菜單項間的一個水平線,當(dāng)菜單項很多時,可以使用分隔條將菜單項劃分成一些分組。 如果想增加一個分隔條,選取“插入”,在“標(biāo)題”文本框中鍵入一個連字符“-”。雖然分隔條是
12、當(dāng)作菜單控件來創(chuàng)建的,但不能被選取。8.2.2 運行時改變菜單屬性1、使菜單命令有效或無效 所有的菜單項都具有Enabled屬性,Enabled屬性默認(rèn)值為True(有效)。當(dāng)Enabled屬性設(shè)為False時,菜單項會變暗,菜單命令無效不響應(yīng)動作,快捷鍵也無效。若上級菜單無效則整個下拉菜單無效。2、 顯示菜單控件的復(fù)選標(biāo)志 使用菜單項的Ckecked屬性,可以設(shè)置復(fù)選標(biāo)志,如果Checked屬性為Ture表示含有復(fù)選標(biāo)志。如圖8.4所示,單擊“標(biāo)尺”可將顯示標(biāo)記顯示或刪除。假設(shè)“標(biāo)尺”項的name屬性值為“Biaochi”則有 :Private Sub Biaochi_Click() Bia
13、oc.Checked=Not Biaoc.CheckedEnd Sub圖8.4 復(fù)先選標(biāo)志示例3、 使菜單控件不可見 在運行時,要使一個菜單項不可見或可見,可以從代碼中設(shè)置其Visible屬性。當(dāng)下拉菜單中的一個菜單項不可見時,則其余菜單項會上移以填補(bǔ)空出的空間。如果菜單條上的菜單項不可見,則菜單條上其余的控件會左移以填補(bǔ)該空間。 使菜單不可見也產(chǎn)生使之無效的作用,通過菜單、訪問鍵或者快捷鍵都無法訪問該控件。 4、運行時添加菜單項 運行時可以添加菜單項,例如,VB的“文件”菜單就是根據(jù)打開的工程名添加菜單,顯示出最近打開過的工程名,如圖8.5所示。圖8.5運行添加菜單項示例運行時添加菜單項 添
14、加菜單項必須使用控件數(shù)組。為了在運行時可以添加菜單項,在設(shè)計時必須設(shè)置該菜單項的Index屬性為0,使它自動地成為控件數(shù)組的一個元素,同時也創(chuàng)建了一個在運行時不可見的分隔條。 如果要添加或刪除一個控件數(shù)組中的菜單控件,可以使用Load或Unload語句。 【例8.2】設(shè)計一個簡單的記事本,程序啟動“編輯”菜單中的“粘貼”菜單項不可用,當(dāng)用戶在文本框中輸入內(nèi)容后,單擊“編輯”菜單下的“剪切”或“復(fù)制”菜單項,或使用對應(yīng)的快捷方式,可完成相應(yīng)的功能,同時“粘貼”菜單項變?yōu)榭捎脿顟B(tài)。運行結(jié)果如圖8.6(a)所示。圖8.6(a)【例8.2】運行結(jié)果a主菜單為“文件”、“編輯”和“幫助”。(1)設(shè)計用戶
15、界面 本例界面由兩部分組成:一個是菜單欄,另一個是文本框。文件的菜單項同【例8.1】,為新建、打開、保存、另存為、分隔線、頁面設(shè)置、打印、分隔線、退出,幫助菜單中的菜單項為索引、內(nèi)容、向?qū)?、分隔線、關(guān)于等。 設(shè)計編輯菜單為剪切、復(fù)制、粘貼,實現(xiàn)對記事本中選定的文檔進(jìn)行操作。注意根據(jù)題目要求在菜單編輯器中進(jìn)行菜單設(shè)計時,要將“粘貼”菜單項的“有效”復(fù)選標(biāo)記“”去掉。剪切、復(fù)制、粘貼三者的名稱分別為:EditCut、 EditCopy 、EditPaste,文本框的MultiLine屬性值設(shè)為True。 說明:這個程序中的編輯功能是Windows程序中常用的功能。Windows提供了一個剪切板對象
16、Clipboard,使用鼠標(biāo)選擇的文本通過程序“復(fù)制”或“剪切”操作,選擇的文本(或?qū)ο螅┍环胖迷贑lipboard上。其中 (1)Clipboard.Clear是清除剪貼板上的信息。 (2)Clipboard.SetText是指定的Clipboard對象格式將文本字符串放到Clipboard上。 (3)Clipboard.GetText是從Clipboard返回一個文本字符串 。通過本例的學(xué)習(xí),希望讀者注意以下知識點的應(yīng)用:菜單編輯器的使用:首先是啟動菜單編輯器,然后是菜單編輯器中具體內(nèi)容的設(shè)置(主要包括以下內(nèi)容:標(biāo)題、名稱、快捷鍵、復(fù)選(Checked)屬性、有效(Enabled)屬性、移
17、動、插入、刪除菜單項和分隔條的設(shè)置)。運行時改變菜單屬性:最常用的有在運行過程中使菜單命令有效或無效和顯示菜單控件的復(fù)選標(biāo)志,本例中對菜單項“粘貼”命令在程序運行過程中使用了動態(tài)變化。分隔條的使用:分隔條是菜單中特殊的菜單項,該菜單項不能響應(yīng)Click事件,也不能被選取。分隔條作為菜單項間的一個水平行顯示在菜單上,可以使用分隔條菜單項將各菜單項劃分成一些邏輯組。如果想增加一個分隔條,選取“插入”,在“標(biāo)題”文本框中鍵入一個連字符“-”, 為其命名唯一的名稱。學(xué)會剪切板的使用。8.2.3 彈出式菜單 彈出式菜單又稱為快捷菜單,彈出式菜單是當(dāng)單擊鼠標(biāo)右鍵時出現(xiàn)的菜單,是顯示在窗體上獨立于菜單的浮動
18、式菜單,彈出式菜單顯示的菜單項取決于鼠標(biāo)右鍵按下時鼠標(biāo)指針?biāo)诘奈恢谩1竟?jié)通過一個實例介紹彈出式菜單的設(shè)計過程。 【例8.3】為【例8.2】添加一個彈出式菜單,當(dāng)用戶在程序的窗體上右擊時,將彈出該菜單,選擇其中的菜單項,能夠?qū)崿F(xiàn)相應(yīng)的功能,如圖8.7(a)所示。圖8.7(a) 【例8.4】運行結(jié)果1設(shè)計過程如下:(1)彈出式菜單的設(shè)計 使用“菜單編輯器”創(chuàng)建菜單。將頂級菜單項設(shè)為不可見。如圖8.7(b)所示。圖8.7(b)【例8.3】中的菜單編輯器編寫相應(yīng)于彈出菜單關(guān)聯(lián)的(釋放鼠標(biāo))事件代 碼。VB提供了PopuMenu方法來顯示彈出式菜單。該方法的格式為:對象.PopupMenu 菜單名,位
19、置常數(shù),橫坐標(biāo),縱坐標(biāo)或者使用調(diào)用的方法,格式為: Call PopupMenu(菜單名稱)因為彈出式菜單被定義為使用鼠標(biāo)右鍵,因此使用MouseDown事件判斷是不是鼠標(biāo)右鍵被按下,如果“是”通過PopupMenu“彈出”菜單。(2)代碼編寫 由于彈出式菜單是作用在文本框中,所示代碼必須是在文本框的相關(guān)事件中編寫。Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 Then PopupMenu PopUpEnd SubPrivate Su
20、b PopCopy_Click()Clipboard.SetText Text1.SelText將文本框Text1中選定的內(nèi)容復(fù)制到剪切板中PopPaste.Enabled = TrueEnd SubPrivate Sub PopCut_Click()Text1.SelText = 將文本框Text1中選定的內(nèi)容刪除PopPaste.Enabled = True使粘貼菜單項變?yōu)橛行nd SubPrivate Sub PopPaste_Click()Text1.SelText = Clipboard.GetText將剪切板中的數(shù)據(jù)顯示在文本框Text1中End Sub(3)運行結(jié)果運行程序后,
21、在文本框中輸入內(nèi)容,當(dāng)沒有進(jìn)行“剪切”或“復(fù)制”操作時,“粘貼”不可選如圖8.7(a)所示,選中一段字符,進(jìn)行了“剪切”操作,則“粘貼”可用,結(jié)果如圖8.7(c)所示。 圖8.7(c) 【例8.3】運行結(jié)果2 工具欄與狀態(tài)欄是 Windows應(yīng)用程序界面常見的組成部分。 工具欄由多個按鈕構(gòu)成,它提供了對于應(yīng)用程序中最常用的菜單命令的快速訪問方式。每個按鈕一般對應(yīng)菜單中的一項。而狀態(tài)欄主要是用于顯示應(yīng)用程序的運行狀態(tài)。 8.3.1 工具欄8.3.2 狀態(tài)欄8.3 工具欄和狀態(tài)欄8.3.1 工具欄 工具欄由若干個按鈕組成,每個按鈕上一般都有圖片,從而形象地表明該按鈕的作用,當(dāng)鼠標(biāo)指向某個按鈕時,還
22、會出現(xiàn)文本提示以說明該按鈕的功能。 為窗體添加工具欄,應(yīng)使用工具條(Toolbar)控件和圖像列表(ImageList)控件。Toolbar和ImageList控件是Active控件的一部分,而不是VB的內(nèi)部控件,因此,在使用時必須將文件MSCOMTL.OCX添加到工程中。創(chuàng)建工具欄的步驟: (1)添加MSCOMCTL.OCX文件,用鼠標(biāo)右鍵單擊控件箱,選擇快捷菜單中的“部件”命令,在如圖8.8 所示的“控件”選項卡中選擇“Microsoft Windows Connon Controls 6.0”,然后單擊“確定”按鈕,則在控件箱中就出現(xiàn)了ImageList 和Toolbar控件 。圖8.8
23、 “部件”對話框(2)創(chuàng)建ImageList控件作為要使用的圖形的集合。(3)創(chuàng)建Toolbar控件,將Toolbar控件與ImageList控件相關(guān)聯(lián),創(chuàng)建Button對象。(4)在ButtonClick事件中添加代碼。 。 【例8.4】 以【例8.3】為基礎(chǔ),為應(yīng)用程序添加工具欄,創(chuàng)建如圖8.9(a)所示運行界面。先從“部件”中添加“MSCOMCTL.OCX”文件然后執(zhí)行具體步驟如下:圖8.9(a) 工具欄示例1、 創(chuàng)建ImageList控件 ImageList控件的作用像圖像的儲藏室,ImageList控件不能獨立使用,它需要Toolbar控件來顯示所儲存的圖像。 在設(shè)計時,將Image
24、List放置在窗體的任何位置,選中單擊右鍵出現(xiàn)ImageList屬性頁,如圖8.9(b)所示,按照需要將圖像順序插入到ImageList中。注意一旦ImageList關(guān)聯(lián)到其他控件,就不能再刪除或插入圖像了。圖8.9(b) ImageList控件屬性頁2 、將Toolbar控件與ImageList控件相關(guān)聯(lián) Toolbar控件包含了一個按鈕(Button)對象集合,可以通過添加按鈕(Button)對象來創(chuàng)建工具欄,Toolbar與ImageList控件關(guān)聯(lián)的步驟如下:(1)創(chuàng)建一個Toolbar控件Toolbar。(2)用鼠標(biāo)右鍵單擊Toolbar控件出現(xiàn)彈出式菜單,選擇“屬性”命令,則出現(xiàn)“
25、屬性頁”。其中主要的屬性有:“索引”文本框(對應(yīng)Index屬性)該屬性是Buttons按鈕集合的下標(biāo)值,相當(dāng)于按鈕的序號。“標(biāo)題”文本框(對應(yīng)Caption屬性)該屬性用來設(shè)置或返回按鈕的標(biāo)題。“描述”文本框(對應(yīng)Description屬性)該屬性用于返回或設(shè)置按鈕的描述信息,其屬性值為字符型。說明:如果按鈕設(shè)置了該屬性,則在程序運行過程中,雙擊工具欄,可以調(diào)出“自定義工具欄”對話框。該對話框會顯示出所有按鈕的描述內(nèi)容,并可進(jìn)行調(diào)整按鈕的相對位置、重新設(shè)置或刪除按鈕,加入分割符操作?!瓣P(guān)鍵字”文本框(對應(yīng)Key屬性)該屬性與索引屬性相似,也是與工具欄中的按鈕對應(yīng)的標(biāo)識,用于通過Buttons集
26、合來訪問工具欄中的按鈕。該屬性值為字符型,是可選項,其值可以為空。說明:在程序中設(shè)置該屬性時,其字符串值必須用雙引號括起來?!爸怠绷斜砜颍▽?yīng)Value屬性)該屬性用于返回或設(shè)置按鈕的狀態(tài)。一般用于對開頭按鈕或編組按鈕的初始狀態(tài)進(jìn)行設(shè)置。其屬性值有以下兩種。0tbrUnpressed:按鈕未被按下,默認(rèn)設(shè)置。1tbrPressed:按鈕被按下。“樣式”列表框(對應(yīng)Style屬性) 該屬性用來設(shè)置按鈕的樣式。其屬性值及含義如下表8.1所示。表8.1 Style屬性的取值及含義常數(shù)值按鈕說明tbrDefault0普通按鈕按鈕按下后恢復(fù)原態(tài),如“新建”tbrCheck1開關(guān)按鈕按鈕按下后將保持按下狀
27、態(tài),如:加粗“tbrButtonGroup2編組按鈕一組按鈕同時只能一個有效,如“右對齊”tbrSeparator3分隔按鈕寬度為8個象素的特殊按鈕,只是用來把它左右的按鈕分隔開來tbrPlaceholder4占位按鈕用來安置其他控件,可設(shè)置按鈕寬度(Width)tbrDropdown5菜單按鈕具有下拉式菜單,如“字符縮放”按鈕 “寬度”文本框(對應(yīng)Width屬性) 該屬性用于設(shè)置上位按鈕的寬度。其屬性值為數(shù)值類型。“工具提示文本”列表框(對應(yīng)ToolTipText屬性) 該屬性用于返回或設(shè)置按鈕的提示信息。程序運行時,將鼠標(biāo)指針移到按鈕上時,會顯示該文本框的文字信息。“圖像”框(對應(yīng)Imag
28、e屬性) 該屬性用于加載按鈕上的圖像。 (3)在“屬性頁”的“通用”選項卡圖8.9(c)的“圖像列表”中,單擊下拉箭頭,選擇“ImageList1”。 圖8.9(c) Toolbar屬性頁“通用”(4)將“屬性頁”切換到“按鈕”選項卡,創(chuàng)建按鈕(Button)對象,如圖8.9(d)所示。圖8.9(d) Toolbar屬性頁“按鈕”(5)重復(fù)創(chuàng)建其他按鈕。創(chuàng)建的工具欄如圖8.9(a)所示。3 編寫B(tài)uttonClick事件代碼 ButtonClick事件是當(dāng)單擊工具欄上的某個按鈕時觸發(fā)的。例如:單擊工具欄Toolbar1,通過按鈕對象的索引(Index)屬性來標(biāo)識被單擊的是哪個按鈕。程序代碼如下
29、:Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.Index Case 1 調(diào)用新建文件可使用的過程 Case 2 打開文件 Case 3 保存文件 省略 End Select End Sub說明,【例8.4】主要是工具欄的建立與使用,通過例題的學(xué)習(xí)讀者應(yīng)注意以下知識點:掌握工具欄的建立過程:首先是從“部件”中添加“MSCOMCTL.OCX”文件,從控件箱中將ImageList 和Toolbar控件添加到窗體,然后創(chuàng)建ImageList控件作為要使用的圖形的集合、創(chuàng)建T
30、oolbar控件,將Toolbar控件與ImageList控件相關(guān)聯(lián)、創(chuàng)建Button對象。最后在ButtonClick事件中添加代碼。在工具欄的創(chuàng)建過程應(yīng)注意ImageList 和Toolbar控件相關(guān)屬性的設(shè)置。對于ButtonClick事件代碼的編寫,除了使用按鈕的Index屬性來標(biāo)識工具按鈕外,還可以使用Key屬性值來檢索Button對象,操作方法只是將索引值用Key所對應(yīng)的屬性值替換而已。 8.3.2 狀態(tài)欄 在一般的Windows軟件的主界面底部都有一個狀態(tài)欄,用于反映程序執(zhí)行時的各種狀態(tài)數(shù)據(jù)。如:菜單命令的功能介紹、鍵盤的狀態(tài)、軟件的一些提示信息等等。在VB的軟件設(shè)計中也可以設(shè)計
31、類似的狀態(tài)欄。狀態(tài)欄的設(shè)置是通過StatusBar控件來實現(xiàn)的。 狀態(tài)欄控件由若干個稱為Panel的對象構(gòu)成,每一個Panel對象既能包含文本又能包含圖片,Panel對象在狀態(tài)欄中又稱為窗格。在一個狀態(tài)欄中最多可以包含16個這樣的窗格,默認(rèn)只有1個窗格。 【例8.5】為【例8.4】的簡單記事本應(yīng)用程序增加一個狀態(tài)欄。該狀態(tài)欄由4個窗格構(gòu)成,它們分別顯示當(dāng)前記事本狀態(tài),系統(tǒng)當(dāng)前的上日期與時間,如圖8.10(a)所示。 圖8.10(a) 狀態(tài)欄示例1具體步驟如下:1 、狀態(tài)欄的創(chuàng)建 在窗體上添加工具箱的StatusBar 控件:雙擊StatusBar,在窗體的底部就會出現(xiàn)一個狀態(tài)欄。說明:狀態(tài)欄控
32、件也包含在MSCOMCTL.OCX文件中,一般如果能創(chuàng)建工具欄即可創(chuàng)建狀態(tài)欄。2 、狀態(tài)欄的設(shè)置 狀態(tài)欄的設(shè)置主要包括狀態(tài)欄的外觀設(shè)置、創(chuàng)建需要的窗格、設(shè)置窗格的屬性等。選中單擊右鍵則出現(xiàn)如圖8.10(b)所示的對話框。圖8.10(b) StatusBar屬性頁 選擇“窗格”選項卡,單擊“插入窗格”命令,依次添加4個“窗格”,第一個文本值為“文本編輯”,其它的均為空。樣式值分別為0-sbrText(文本或位圖),6-sbrDate(以System格式顯示當(dāng)前日期),5-sbrTime(以System格式顯示當(dāng)前時間),0-sbrText(文本或位圖)。其它屬性如圖8.10(b)所示 。狀態(tài)欄主
33、要屬性如下:(1)“索引”(對應(yīng)Index屬性)和“關(guān)鍵字”(對應(yīng)Key屬性)文本框這兩個屬性的作用與工具欄相應(yīng)屬性基本相同,主要用來標(biāo)識狀態(tài)欄中不同的窗格。(2)“文本”框(對應(yīng)Text)該屬性用來在窗格中顯示需要的信息。(3)“工具提示文本”(對應(yīng)ToolTipText屬性)文本框該屬性用來返回或設(shè)置窗格中的提示信息,與工具欄相應(yīng)選項的作用基本相同。(4)對齊”下拉列表(對應(yīng)Alignment屬性)該屬性用來返回或設(shè)置窗體中的位置。其屬性值有以下幾種:0strLeft:文本在位圖的左側(cè),以左對齊方式顯示。1sbrCenter:文本在位圖的右側(cè),以右對齊方式顯示。2sbrRight:文本在位
34、圖的左側(cè),以右對齊方式顯示。(5)樣式”下拉列表框(對應(yīng)Style屬性)該屬性用來設(shè)置狀態(tài)欄中顯示信息的數(shù)據(jù)類型,其屬性值有以下幾種:0stText:文本或位圖。1sbrCaps:顯示Caps Lock的狀態(tài)。2sbrNum:顯示Num Lock的狀態(tài)。3strIns:顯示Insert鍵的狀態(tài)。4sbrScrl:顯示Scroll Lock的狀態(tài)。5sbrTimet:以System格式顯示當(dāng)前時間。6strDate:以System格式顯示當(dāng)前日期。(6)“斜面”列表框(對應(yīng)Bevel屬性)該屬性用來設(shè)置Panel對象的斜面樣式。其屬性值有以下幾種:0stNoBevel:窗格暗淡無光平面樣式。1s
35、brInsert:窗格顯示凹進(jìn)樣式。2sbrRaised:窗格顯示凸起樣式。(7)“自動調(diào)整大小”列表框(對應(yīng)AutoSize屬性) 該屬性用來設(shè)置狀態(tài)欄是否能夠自動調(diào)整大小。其屬性值有以下幾種:0strNoAutoSize:該窗格的寬度始終由Width屬性指定。1sbrSpring:當(dāng)父窗體大小改變,產(chǎn)生了多余的空間時,所有具有該屬性設(shè)置的窗格均分空間,但寬度不會小于MinWidth屬性指定的寬度。2sbrCentent:窗格的寬度與其內(nèi)容自動匹配。 3 、在運行中設(shè)置狀態(tài)欄 由于狀態(tài)欄一般需要反映程序運行的一些狀態(tài)數(shù)據(jù),所以狀態(tài)欄中相應(yīng)窗格的內(nèi)容顯然是需要根據(jù)實際情況進(jìn)行動態(tài)更新的。 狀態(tài)
36、欄包含有一個窗格對象的集合Panels,該集合的成員是每個窗格。要引用某個窗格既可以通過窗格的索引值Index,也可以通過每個窗格的關(guān)鍵字Key。在第四個窗格中顯示所選擇的工具欄的項目,可使用如下程序:Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.Index Case 1 StatusBar1.Panels(4) = Button.Key Case 2 StatusBar1.Panels(4) = Button.Key 打開文件 Case 3 StatusBar1.P
37、anels(4) = Button.Key 保存文件 、省略End Select End Sub本例主要是狀態(tài)欄的建立與使用,通過【例8.5】的學(xué)習(xí)讀者應(yīng)注意以下知識點:狀態(tài)欄的建立:設(shè)計時在窗體上增加Statusbar控件后,打開其“屬性頁”對話框,選擇“窗格”標(biāo)簽,進(jìn)行相應(yīng)的設(shè)置,在運行過程中改變狀態(tài)欄,本例主要是對于狀態(tài)欄的第四個窗格,當(dāng)單擊工具欄上不同的按鈕時,在第四個窗格內(nèi)將顯示不同的內(nèi)容。8.4 通用對話框 在Windows及其系列應(yīng)用軟件中,有許多對話框外觀及其操作都很相似,如:“打開”對話框、“另存為”對話框、“顏色”對話框、“字體”對話框、“打印”對話框等。實際上,VB也提供
38、了用來制作這些標(biāo)準(zhǔn)對話框的控件,這就是通用對話框控件(CommonDialog)。 8.4.1 通用對話框的使用與常用屬性 8.4.2 “打開”對話框 8.4.3 “另存為”對話框 8.4.4 “顏色”對話框 8.4.5 “字體”對話框 8.4.6 “打印”對話框 8.4.7 “幫助”對話框8.4.1 通用對話框的使用與常用屬性 CommonDialog控件是ActiveX控件,在使用之前必須將其加入到控件工具箱中。方法前面已提到,就是在控件工具箱上右擊選擇“部件”命令,彈出“部件”對話框,選中“Microsoft CommonDialog Control 6.0”,最后單擊“確定”按鈕。 添
39、加后,可以像常用控件一樣在窗體上使用通用對話框控件。由于該控件僅在設(shè)計時可見,在運行時是不可見的。因此,可以將其放置在窗體的任意位置上,而且大小也不需要(也不能)調(diào)整。 CommonDialog 控件的屬性很多,其屬性設(shè)置的方法可以在“屬性”對話框中進(jìn)行,也可以右擊窗體上的控件選擇“屬性”命令,此時屏幕上會彈出“屬性頁”對話框如圖8.1(g)所示,通過該對話框?qū)ζ溥M(jìn)行屬性設(shè)置。 在該對話框中有5個選項卡,每個選項卡代表著不同的對話框,它們有各自不同的屬性,但有些屬性是各個對話框所共有的,它們是:1 、Action屬性: 通過在代碼中設(shè)置不同的Action值可以產(chǎn)生不同的對話框。如果沒有設(shè)置該屬
40、性(默認(rèn)值為0),運行時通用對話框不會產(chǎn)生任何信息,直到設(shè)置了該屬性后才會出現(xiàn)相應(yīng)的對話框。另外VB還提供了相應(yīng)的方法來產(chǎn)生不同的對話框。Action屬性值,方法與對話框的對應(yīng)關(guān)系如表8.2所示。Action屬性值產(chǎn)生的對話框?qū)?yīng)的方法0無1“打開“文件對話框ShowOpen2“另存為”對話框ShowSave3“顏色”對話框ShowColor4“字體”對話框ShowFont5“打印”對話框ShowPrint6“幫助”對話框ShowHelp表8.2 Action屬性值,方法與對話框的對應(yīng)關(guān)系表 注意: 使用該控件所產(chǎn)生的對話框僅提供了人機(jī)信息交互的界面,并不能實現(xiàn)真正的操作(如打開、另存、打印等
41、),要想實現(xiàn)這些具體的操作必須進(jìn)行相應(yīng)的編程。2 、DialogTitle屬性: 產(chǎn)生的對話框的標(biāo)題文字,如不進(jìn)行設(shè)置則會使用默認(rèn)的標(biāo)題。3、 CancelError屬性: 在每個所產(chǎn)生的對話框上都有“取消”按鈕,該屬性決定程序運行時,用戶單擊了“取消”按鈕后是否會產(chǎn)生出錯信息。該屬性取True時,單擊“取消”按鈕會產(chǎn)生一個錯誤信息,同時自動將Err對象的Number屬性值設(shè)置為32755。程序中可以通過代碼來訪問這個屬性以判斷是否按下了“取消”按鈕,以決定程序的走向。如果該屬性值置為False(默認(rèn)),則當(dāng)單擊“取消”按鈕時,不會產(chǎn)生任何出錯信息。8.4.2 “打開”對話框 “打開”對話框是
42、當(dāng)通用對話框的Action屬性設(shè)置為1時的對話框,如圖8.11所示。 “打開”對話框充分利用了操作系統(tǒng)的功能,它可以遍歷整個的磁盤目錄結(jié)構(gòu),找到所需要的文件,并以“列表”或“詳細(xì)資料”的方式顯示出來?!按蜷_”對話框,除了一些基本的屬性設(shè)置外,主要還有以下4個很重要屬性。圖8.11 “打開”對話框示例1 文件名稱(FileName屬性) 該屬性值為字符串類型,用于設(shè)置或得到用戶所選定的文件名。即當(dāng)程序執(zhí)行時,用戶選定的某個文件名將顯示在“文件名”文本框中,同時此文件名及相關(guān)路徑將以字符串的形式賦值給FileName屬性。2 初始路徑(InitDir屬性) 該屬性用來指定“打開”對話框中的初始目錄
43、。默認(rèn)設(shè)置顯示當(dāng)前目錄。初始路徑在設(shè)計時或代碼編寫中均可進(jìn)行設(shè)置。例如: Cd1.InitDir=”D:論文” 將對話框的初始路徑設(shè)為D盤“論文”文件夾3 文件類型(Filter屬性) 通過Filter屬性在“打開”對話框中設(shè)置文件的類型。該屬性的值是一個字符串,由一組或多組文件類型表達(dá)式構(gòu)成,每組代表一類文件。構(gòu)成規(guī)則是: 類型說明字符串|類型通配表達(dá)式|類型說明字符串|類型通配表達(dá)式 類型說明字符串為對文件類型的說明,類型通配表達(dá)式表示需顯示的文件類型,各組之間用“|”符號分開。例如:設(shè)置如圖8. 12所示的結(jié)果,需要在“打開”對話框的“文件類型“列表框中只顯示W(wǎng)ord文檔(擴(kuò)展名為doc
44、)、和文本文件(txt),則Filter屬性值應(yīng)設(shè)置為:Cd1.Filter=”Word文檔|*.doc| Excel文檔|*.xls|文本文件|*.txt”圖8.12 “通用對話框”的“Filter”屬性示例4 過濾器索引(FilterIndes屬性) 該屬性用于表示用戶在“文件類型”列表框中選定的文件類型的序號。例如與圖8. 28所示相對應(yīng),Word文檔的該屬性值為1,Excel文檔的該屬性值為2,文本文件的該屬性值為3。8.4.3 “另存為”對話框 “另存為”對話框是當(dāng)通用對話框的Action屬性為2時的對話框,如圖8.14所示。 “另存為”對話框為用戶在存儲文件時提供了一個標(biāo)準(zhǔn)界面,供用戶選擇或鍵入所要存入文件的路徑及文件名。 “另存為”對話框所涉及的屬性與“打開”對話框基本相同,只是多了一個DefaultExt屬性,該屬性用來表示所存文件的默認(rèn)擴(kuò)展名。 圖8.14 “另存為”對話框8.4.4 “顏色”對話框 “顏色”對話框是當(dāng)通用對話框的Acti
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度出租車車輛租賃與城市交通發(fā)展規(guī)劃合同4篇
- 2025年小兒急診合同
- 2025年度門衛(wèi)室智能門禁系統(tǒng)維護(hù)與升級合同3篇
- 二零二五年度臨時工技能培訓(xùn)及職業(yè)發(fā)展規(guī)劃合同4篇
- 2025年蘇科新版九年級地理上冊月考試卷含答案
- 2025年浙江溫州航空貨站有限公司招聘筆試參考題庫含答案解析
- 2025年寧夏神耀科技有限責(zé)任公司招聘筆試參考題庫含答案解析
- 2025年安徽合肥北城建設(shè)投資公司招聘筆試參考題庫含答案解析
- 2025年吉林白城大安市中小企業(yè)融資擔(dān)保有限公司招聘筆試參考題庫附帶答案詳解
- 2025年世界五百強(qiáng)浙江物產(chǎn)環(huán)保能源股份有限公司招聘筆試參考題庫附帶答案詳解
- 中國末端執(zhí)行器(靈巧手)行業(yè)市場發(fā)展態(tài)勢及前景戰(zhàn)略研判報告
- 北京離婚協(xié)議書(2篇)(2篇)
- 2025中國聯(lián)通北京市分公司春季校園招聘高頻重點提升(共500題)附帶答案詳解
- 康復(fù)醫(yī)學(xué)科患者隱私保護(hù)制度
- Samsung三星SMARTCAMERANX2000(20-50mm)中文說明書200
- 2024年藥品質(zhì)量信息管理制度(2篇)
- 2024年安徽省高考地理試卷真題(含答案逐題解析)
- 廣東省廣州市2024年中考數(shù)學(xué)真題試卷(含答案)
- 高中學(xué)校開學(xué)典禮方案
- 內(nèi)審檢查表完整版本
- 3級人工智能訓(xùn)練師(高級)國家職業(yè)技能鑒定考試題及答案
評論
0/150
提交評論