版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、VB高級應(yīng)用,項(xiàng)目四 文字處理程序項(xiàng)目五 圖形控件與繪圖操作項(xiàng)目六 多媒體播放器程序項(xiàng)目七 使用ADO編寫銷售程序,項(xiàng)目四 文字處理程序,掌握MDI應(yīng)用程序設(shè)計(jì)和編程。掌握菜單、圖像列表框、工具欄和狀態(tài)欄控件的基本屬性和事件。掌握RichTextBox控件的初步應(yīng)用。掌握通用對話框控件的基本屬性和應(yīng)用。掌握Clipboard對象(剪貼板)的使用。,活動一、多文檔界面,我們經(jīng)常使用的Windws的記事本,是單文檔界
2、面,在這個界面中,當(dāng)打開一個文件時,自動關(guān)閉原來的文件。同一個時刻,只能處理一個文檔。多文檔界面(MDI,Multiple Document Interface)允許創(chuàng)建在單個容器窗體中包含多個窗體的應(yīng)用程序。絕大多數(shù)基于Windows的大型應(yīng)用程序都是多文檔界面,例如,Microsoft Word和Microsoft Excel等。多文檔界面可同時打開多個文檔,它簡化了文檔之間的信息交換。,一、多文檔界面的特性,多文檔界面由父窗體和
3、子窗體組成,父窗體也稱MDI窗體,是作為子窗體的容器;子窗體也稱文檔窗口,顯示各自文檔。圖是一個多文檔應(yīng)用程序,它由一個父窗體和三個子窗口組成。多文檔界面有如下特性:(1)所有子窗體均顯示在MDI窗體的工作區(qū)中。用戶可以改變、移動子窗體的大小,但被限制在MDI窗體中。(2)當(dāng)最小化子窗體時,它的圖標(biāo)將顯示在MDI窗體上,而不是在任務(wù)欄中。當(dāng)最小化MDI窗體時,所有的子窗體也被最小化,只有MDI窗體的圖標(biāo)出現(xiàn)在任務(wù)欄中。(3)當(dāng)最大
4、化一個子窗體時,它的標(biāo)題與MDI窗體的標(biāo)題一起顯示在MDI窗體的標(biāo)題欄上。(4)MDI窗體和子窗體都可以有各自的菜單,當(dāng)子窗體加載時覆蓋MDI窗體的菜單。,二、創(chuàng)建和設(shè)計(jì)MDI窗體,開發(fā)多文檔界面的一個應(yīng)用程序至少需要兩個窗體:一個(只能一個)MDI窗體和一個(或若干個)子窗體。在不同窗體中共用的過程、變量應(yīng)存放在標(biāo)準(zhǔn)模塊中。MDI窗體是子窗體的容器,該窗體中一般有菜單欄、工具欄、狀態(tài)欄,不可以有文本框等控件。1.創(chuàng)建MDI窗體
5、用戶要建立一個MDI窗體,可以選擇“工程”菜單中的“添加MDI窗體”命令即可。2.設(shè)計(jì)MDI窗體設(shè)計(jì)MDI窗體時,可以建立菜單欄、工具欄、狀態(tài)欄。,三、創(chuàng)建和設(shè)計(jì)MDI子窗體,MDI子窗體主要是顯示應(yīng)用程序的文檔,通常,在該窗體上應(yīng)用有文本框,也可以有菜單欄以及工具欄。1.創(chuàng)建MDI子窗體MDI子窗體是一個MDIChild屬性為True的普通窗體。因此,要創(chuàng)建一個MDI子窗體,應(yīng)先創(chuàng)建一個新的普通窗體,然后將它的MDIChild
6、屬性設(shè)置為True即可。在工程管理窗口中,可以看到,子窗體的圖標(biāo)與普通窗體的圖標(biāo)不同。若要建立多個子窗體,則重復(fù)進(jìn)行上述操作。,三、創(chuàng)建和設(shè)計(jì)MDI子窗體,(1)創(chuàng)建對象變量創(chuàng)建以文檔為中心的應(yīng)用程序,為了在運(yùn)行時建立若干個子窗體存取不同的文檔,一般先創(chuàng)建一個子窗體作為這個應(yīng)用程序文檔的模板,然后通過調(diào)用對象變量來創(chuàng)建其他子窗體。創(chuàng)建對象變量用下面的語句。格式: Dim 〈變量名〉 As New〈對象類型〉功能:聲明對象變量。
7、例如:如果已建立了一個Name為“frmChild”的子窗體,則:Dim NewDoc As New frmChild就會為“frmChild”建立一個新實(shí)例,新實(shí)例具有與“frmChild”窗體相同的屬性、控件、代碼。說明:New關(guān)鍵字后應(yīng)是“類名”。實(shí)際上,在工程中添加的窗體有著特殊性,它既是窗體類,也是窗體對象,與在窗體上建立的控件具有不同的性質(zhì)。例如:Dim NewDoc As New Form1 '聲明并
8、創(chuàng)建一個NewDoc窗體變量NewDoc.Show '新窗體顯示在屏幕上,三、創(chuàng)建和設(shè)計(jì)MDI子窗體,(2)創(chuàng)建MDI子窗體的代碼窗體程序運(yùn)行時建立一個子窗體的程序代碼如下: Dim No As Integer Public Sub FileNewProc() Dim NewDoc As New frmChild No=No+1 New
9、Doc.Caption="編輯區(qū)" NewDoc.Show '顯示子窗體 End Sub如果多次調(diào)用FileNewProc過程,則可以產(chǎn)生多個“frmChild”的子窗體。,例:設(shè)計(jì)一個簡易的書寫器。,四、MDI窗體的屬性和方法,(1)特有屬性AutoShowChildren屬性:為True時,表示加載子窗體時將自動顯示該子窗體。為False時,需要使用Sho
10、w方法顯示子窗體。ActiveForm屬性:表示MDI窗體中的活動子窗體。(2)方法Arrange方法:設(shè)置子窗體的排列方式。格式:對象.Arrange 值值有: 0—vbCascade,層疊排列1—vbTileHorizontal,水平平鋪排列2—vbTileVertical,垂直平鋪排列3—vbArrangeIcons,重排最小化子窗體的圖標(biāo),五、應(yīng)用MDI窗體注意事項(xiàng),MDI窗體為使用VB進(jìn)行應(yīng)
11、用程序的開發(fā)提供了高效、多功能的良好平臺,采用MDI窗體已是非常普遍的技術(shù)手段。為了提高其性能,在使用MDI編寫應(yīng)用程序時要注意以下事項(xiàng):(1)應(yīng)盡量少地使用MDI子窗體。因?yàn)?,每加載一個子窗體,就要占據(jù)較多的內(nèi)存及系統(tǒng)資源。過多地使用子窗體,會造成內(nèi)存和系統(tǒng)資源不夠,影響程序運(yùn)行的速度。(2)在MDI應(yīng)用程序的設(shè)計(jì)中,若在子窗體中,盡量用Me關(guān)鍵字表示當(dāng)前窗體;而在MDI窗體中,則應(yīng)使用ActiveForm屬性。(3)對于在子窗
12、體菜單項(xiàng)、MDI菜單項(xiàng)或工具欄上都要執(zhí)行的相同功能,應(yīng)以過程的形式存放在標(biāo)準(zhǔn)模塊(Model)中,供各模塊共享。(4)如果應(yīng)用程序中所使用的是不可視控件,如Timer、CommonDialog控件等,都應(yīng)放在MDI窗體上,使子窗體也可以使用這些控件。,用Me關(guān)鍵字來引用當(dāng)前代碼正在運(yùn)行的窗體。,活動二、菜單的設(shè)計(jì),教學(xué)目標(biāo):1、下拉式菜單的設(shè)計(jì)2、彈出式菜單的設(shè)計(jì),菜單可分為下拉式菜單和彈出式菜單兩種基本類型。菜單控件只包含一個
13、事件,即單擊事件。,下拉式菜單系統(tǒng)的組成結(jié)構(gòu) :,主菜單名快捷鍵熱鍵下級子菜單標(biāo)記,主菜單欄,分隔線,子菜單名,設(shè)計(jì)菜單的步驟,設(shè)計(jì)菜單的操作步驟如下:(1)建立窗體,添加控件。(2)打開“菜單編輯器”窗口。(3)設(shè)置各菜單項(xiàng)屬性。(4)為相應(yīng)的菜單命令添加事件過程。,一、菜單編輯器的使用,打開菜單編輯器 工具/菜單編輯器(Ctrl+E); 窗體上的快捷菜單/菜單編輯器。菜單編輯器界面菜單編器窗口分為三個部分
14、,即數(shù)據(jù)區(qū)、編輯區(qū)和菜單項(xiàng)顯示區(qū)。,常用屬性:1. 標(biāo)題(Caption) 熱鍵 前面加&2. 名稱(Name)文本框 分隔符也應(yīng)有名稱3. 快捷鍵(Shortcut) 菜單名沒有快捷鍵4. 復(fù)選(Checked) 檢查框 TRUE 有?5. 有效(Enabled) 檢查框6. 可見(Visible) 檢查框,,,菜單列表框,菜單項(xiàng)屬性,操作按鈕
15、(編輯區(qū)),,(數(shù)據(jù)區(qū)),(菜單項(xiàng)顯示區(qū)),要加一條分隔線,應(yīng)在標(biāo)題處輸入減號(-),二、菜單設(shè)計(jì)實(shí)例,【例1】菜單設(shè)計(jì)。建立一個如圖10-3所示的菜單,用戶可以通過選擇菜單中的菜單項(xiàng)改變文本框中內(nèi)容的外觀。,菜單項(xiàng)及其屬性設(shè)置:,程序如下: Private Sub ct_Click() Text1.FontBold = Not Text1.FontBold Ct.Checked=Not Ct.Checked End S
16、ub Private Sub er_Click() Text1.FontSize = 20End SubPrivate Sub ht_Click() Text1.FontName = "黑體"End Sub Private Sub lsh_Click() Text1.FontName = "隸書"End Sub Pr
17、ivate Sub quit_Click() EndEnd Sub,Private Sub sh_Click() Text1.FontSize = 12End Sub Private Sub st_Click() Text1.FontName = "宋體"End Sub Private Sub xhx_Click()Text1
18、.FontUnderline = Not Text1.FontUnderlineXhx.Checked=Not xhx.CheckedEnd SubPrivate Sub xt_Click() Text1.FontItalic = Not Text1.FontItalicXt.Checked=Not Xt.CheckedEnd Sub,三、菜單項(xiàng)的有效性,控制菜單中的某些菜單項(xiàng)能根據(jù)執(zhí)行條件的不同進(jìn)行動態(tài)變化,即
19、當(dāng)條件滿足時可以執(zhí)行,否則不能執(zhí)行。只要把一個菜單項(xiàng)的“有效”屬性設(shè)置為False,就可以使菜單項(xiàng)的“有效”屬性失效,運(yùn)行后該菜單項(xiàng)變?yōu)榛疑?;為了使一個失效的菜單項(xiàng)變?yōu)橛行?,只要把它的“有效”屬性重新設(shè)置True即可實(shí)現(xiàn)。例如:使子菜單“宋體”設(shè)置“失效”,則: st.Enabled=False使子菜單“隸書”設(shè)置“有效”,則: lsh.Enabled=True,四、菜單項(xiàng)標(biāo)記?,標(biāo)記菜單項(xiàng)標(biāo)記通過菜單設(shè)計(jì)窗口中的“
20、復(fù)選”屬性設(shè)置,當(dāng)該屬性為True時,相應(yīng)的菜單項(xiàng)前有“√”標(biāo)記;如果該屬性為False,則相應(yīng)的菜單項(xiàng)前沒有“√”標(biāo)記。但是,菜單項(xiàng)標(biāo)記通常是動態(tài)地加上或取消的,因此應(yīng)在程序代碼中根據(jù)執(zhí)行情況設(shè)置。例:設(shè)置“粗體”菜單項(xiàng)前有標(biāo)記ct.checked=true,五、彈出式菜單(快捷菜單),彈出式菜單是獨(dú)立于窗體菜單欄而顯示在窗體內(nèi)的浮動菜單。顯示位置取決于單擊鼠標(biāo)鍵時指針的位置。建立彈出式菜單通常有兩步:第一步:用菜單編輯器
21、建立菜單,操作與前面介紹的基本相同,唯一的區(qū)別是把菜單名(即主菜單項(xiàng))的“可見”屬性設(shè)置為False(子菜單項(xiàng)不要設(shè)置為False)。第二步:然后用PopupMenu方法彈出顯示。通常該方法放在MouseDown事件中。PopupMenu方法用來顯示彈出式菜單,其格式為: [對象.] PopupMenu 菜單名 [,Flags[,x[,y[,BoldCommand]]]],Sub Text1_MouseDown(Button A
22、s Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu EditMenu, vbPopupMenuCenterAlign or vbPopupMenRightButton end ifEnd Sub,Flag參數(shù):表示彈出的位置和觸發(fā)的鍵。分兩組:一組用于指定彈出的
23、菜單位置,另一組用于指定觸發(fā)菜單命令的鍵。,或 PopupMenu EditMenu, 4+8,【例2】我們將例1中的“字形”菜單的內(nèi)容作為彈出式菜單的內(nèi)容。我們只需在代碼窗口添加如下代碼:Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single)
24、 If Button = 2 Then PopupMenu zx End If End Sub運(yùn)行程序,鼠標(biāo)右鍵單擊窗體,即可彈出“字形”菜單的菜單內(nèi)容。如果不想在窗體頂部顯示“字形”菜單,則可在窗體編輯器中將zx主菜單項(xiàng)的“可見”屬性設(shè)為False即可。,活動二實(shí)例,,活動三、工具欄和狀態(tài)欄,工具欄為用戶在應(yīng)用程序時,快速訪問
25、最常用的菜單命令提供了很大的方便,進(jìn)一步增加應(yīng)用程序的菜單界面,已經(jīng)成為Windows應(yīng)用程序的標(biāo)準(zhǔn)功能。制作工具欄有兩種方法:一是手工制作,即利用圖形框和命令按鈕,這種方法比較繁瑣;另一種方法是將ToolBar、ImageList組合使用,使得工具欄制作與菜單制作一樣簡單易學(xué)。狀態(tài)欄StatusBar可顯示各種狀態(tài)信息。使用這些控件必須打開“部件”對話框,選擇“Microsoft Windows Common Controls 6.
26、0”,將控件添加到工具箱。在多文檔界面(MDI)的應(yīng)用程序開發(fā)中,工具欄和狀態(tài)欄應(yīng)在MDI父窗體中。,創(chuàng)建工具欄的步驟:(1)在ImageList控件中添加所需的圖像(2)在ToolBar控件中創(chuàng)建Button對象。(3)在ButtonClick事件中用Select Case語句對各按鈕進(jìn)行相應(yīng)的編程。,一、圖像列表框,圖像列表框控件(ImageList)不能單獨(dú)使用,它專門為其他控件提供圖像庫,是一個圖像容器控件。工具欄按鈕的
27、圖像就是通過ToolBar控件從ImageList的圖像庫中獲得的。1.常用屬性(1)Index屬性該屬性設(shè)置或返回控件在控件數(shù)組中的標(biāo)識號。(2)ListImages屬性該屬性返回對圖像列表控件中“ListImage 對象”的集合的引用。,一、圖像列表框,2.“ListImage對象”的常用屬性“ListImage對象”是任意大小的位圖,是組成“ListImages集合”的成員。常用屬性如下:(1)Count屬性該屬性
28、返回集合中對象的數(shù)目。(2)Index屬性該屬性返回或設(shè)置一個數(shù),它惟一指定集合中的對象。(3)Key屬性該屬性返回或設(shè)置字符串,在集合中惟一地標(biāo)識一個成員。(4)Picture屬性該屬性返回或設(shè)置控件中要顯示的圖片。,一、圖像列表框,3.圖像列表框的使用在ToolBar控件上添加ImageList控件(如ImageList1控件)后,用右鍵單擊ImageList1控件,在彈出的快捷菜單中選擇“屬性”命令,打開“屬性頁”對
29、話框,選擇其中的“圖像” 選項(xiàng)卡。,在ToolBar中引用圖像文件的擴(kuò)展名為: .ico、.bmp、.gif、.jpg等。,關(guān)鍵字(Key):所有圖像的Key屬性都不相同。,,索引(Index):第一個圖像的Index值為1,第二個為2,依此類推。,,,一、圖像列表框,【例】建立一個圖像列表框控件ImageList1,裝入12個圖像。,4.圖像列表框控件的方法:(1) Add 方法格式:[對象.] ListImages.Add [
30、Index],[Key],Image功能:往圖像列表框控件中的圖像集合插入索引為Index、關(guān)鍵字為Key的圖像Image。(2) Remove 方法格式: [對象.] ListImages.Remove Index(3) Picture 屬性格式: [對象.] ListImages(Index | Key ).Picture屬性值:返回圖像。,二、工具欄,Toolbar工具欄控件包含一個按鈕集合(Buttons),利用該控
31、件我們可以很方便地將經(jīng)常使用的命令建成工具欄按鈕,并為按鈕指定圖像、文字和工具提示,從而構(gòu)成功能全面的工具欄。使用工具欄(ToolBar)可以建立多個按鈕,每個按鈕的圖像來自ImageList圖像列表框?qū)ο笾胁迦氲膱D像。,二、工具欄,1、為工具欄連接圖像右鍵單擊Toolbar控件,選擇“屬性”命令打開如圖所示的Toolbar 控件“屬性頁”對話框,選擇“通用”選項(xiàng)卡。,,ToolBar與ImageList的連接,,按鈕的外觀,當(dāng)工具欄
32、按鈕變?yōu)椴豢捎脮r(Enabled為False)按鈕圖像所在的圖像列表ImageList,,工具欄的外觀,,二、工具欄,2、為工具欄增加按鈕打開“屬性頁”上的“按鈕”選項(xiàng)卡,單擊“插入按鈕”,可以在工具欄上插入按鈕。,Toolbar控件“按鈕”選項(xiàng)卡,表12-12 按鈕樣式,索引(Index)和關(guān)鍵字(Key)為按鈕的編號和標(biāo)識,在ButtonClick事件中引用;,圖像(Image) :使用ImageList對象中的圖像,值可以是K
33、ey或Index,按鈕的樣式(Style),共6種,,,,,當(dāng)按鈕被按下時,值為1,否則為0,,二、工具欄,3. 響應(yīng)Toolbar控件的事件ToolBar控件常用的事件有兩個:ButtonClick和ButtonMenuClick。前者對應(yīng)按鈕樣式為0-2,后者對應(yīng)樣式為5的菜單按鈕。由于工具欄上的按鈕為控件數(shù)組,可以利用數(shù)組的索引(Index屬性)或關(guān)鍵字(Key屬性)來識別被單擊的按鈕,再使用Select Case語句完成代碼
34、編制。(1)用索引Index確定按鈕Private Sub Toolbar1-ButtonClick(ByVal Button As ComctlLib.Button) Select Case Button.Index Case 1 '按了新建按鈕,執(zhí)行新建過程,該過程代碼在標(biāo)準(zhǔn)模塊 FileNewProc Case 2 '按了打開按鈕,執(zhí)行打開過程
35、 FileOpenProc …… End SelectEnd Sub,二、工具欄,(2)用關(guān)鍵字Key確定按鈕如下程序段與(1)程序段作用相同,僅用Button.Key代替Button.Index。Private Sub Toolbar1-ButtonClick(ByVal Button As ComctlLib.Button) Select Case Button.Key Case "
36、TNew" '按了新建按鈕,執(zhí)行新建過程 FileNewProc Case "TOpen" '按了打開按鈕,執(zhí)行打開過程 FileOpenProc …… End SelectEnd Sub使用Button.Key程序可讀性好;而且當(dāng)按鈕有增刪時,使用關(guān)鍵字不影響程序。,二、工具欄,當(dāng)單擊菜單按鈕時,響應(yīng)Butt
37、onMenuClick事件,該事件形式如下:Private Sub Object-ButtonMenuClick([Index As Integer,]lByVal Button As ConctlLib.Button) ……End SubIndex表示菜單按鈕在控件數(shù)組中的索引;Button表示對菜單按鈕對象的引用。,例:設(shè)計(jì)一個工具欄,由4個按鈕組成,能實(shí)現(xiàn)改變標(biāo)簽的字體、字號、粗體和顏色功能。,三、狀態(tài)欄,狀態(tài)欄控件
38、(StatusBar)用來顯示系統(tǒng)的某些當(dāng)前狀態(tài)值。狀態(tài)欄控件是由Panel對象組成的,每一個Panel對象都能包含文本或圖片。狀態(tài)欄的外觀是一組窗格,在程序中每一個窗格都作為Panel對象來訪問。所有Panel對象組成Panels集合。狀態(tài)欄最多能夠包含16個Panel對象。利用其Style屬性值中的一個值,程序就可以自動地顯示公共數(shù)據(jù),如日期、時間和鍵盤狀態(tài)等。,三、狀態(tài)欄,狀態(tài)欄的建立在設(shè)計(jì)時,在窗體上增加 StatusBar
39、 控件,并在其屬性頁的“窗格”選項(xiàng)卡中進(jìn)行必要的設(shè)置,以建立面板并定制它們的外觀。,,可插入圖像,,Panel 對象的Text屬性:顯示的文本,,樣式,索引:從1開始編號,應(yīng)用程序能夠使用索引號訪問各個窗格,,Panel 對象的Key屬性:可通過關(guān)鍵字訪問窗格。,,三、狀態(tài)欄,狀態(tài)欄的Style屬性,三、狀態(tài)欄,狀態(tài)欄的常用事件狀態(tài)欄的常用事件為:PanelClick當(dāng)用戶單擊狀態(tài)欄的某個窗格時,觸發(fā) PanelClick事件。,P
40、rivate sub statusbar1_panelclick(byval Panel as panel) Select case panel.key case “b1”panel.text=“aaa” case “b2”panel.picture=load(“”) end selectend sub,Panel參數(shù)指明了用戶單擊了哪個窗格,該參數(shù)由系統(tǒng)自動提供。,四、高級文本框控件(Ri
41、chTextBox),高級文本框控件(RichTextBox)可用于輸入和編輯文本,它同時提供了比常規(guī)的TextBox控件更高級的格式特性。從前幾章可以知道,對Text控件只能進(jìn)行單一的文字格式設(shè)置。使用RichTextBox控件可以實(shí)現(xiàn)多種文字格式、段落等的設(shè)置,還可以插入圖形,可真正構(gòu)成一個像Word一樣的字處理軟件。要使用RichTextBox控件,必須打開“部件”對話框,選擇“Microsoft Rich TextBox C
42、ontrols 6.0”,將控件添加到工具箱。,四、高級文本框控件(RichTextBox),1.文件操作方法用LoadFile和SaveFile方法,可以方便地為RichTextBox控件打開或保存文件。(1)LoadFile方法格式:對象.LoadFile 文件標(biāo)識符[,文件類型]功能:LoadFile方法能夠?qū)TF文件或文本文件裝入控件中。說明:(1)文件標(biāo)識符為被加載文件的文件名(包括路徑)。(2)文件類型取
43、值0或rtfRTF時為RTF文件(缺省)。(3)文件類型取1或rtfTEXT時為文本文件。,例:frmMDI.activeform.richtextbox1.loadfile “D:\my\t1.txt”,1,四、高級文本框控件(RichTextBox),(2)SaveFile方法格式:對象.SaveFile 文件標(biāo)識符[,文件類型]功能:該方法能夠?qū)⒖丶械奈臋n保存在RTF文件或文本文件中。例如:下面語句把文檔以文本文件格式保
44、存在D盤My子目錄的T1.txt文件中。frmMDI.Activeform.RichTextBox1.SaveFile "D:\my\T1.txt",1,四、高級文本框控件(RichTextBox),2.常用屬性RichTextBox控件提供了一些屬性,可對該控件中任何部分的文本使用不同的格式。例如可以將文本變?yōu)榇煮w或斜體,改變文本的顏色,創(chuàng)建上標(biāo)或下標(biāo)??梢哉{(diào)整段落的左右縮進(jìn)值,還可以使用懸掛式縮進(jìn)。File
45、Name屬性:加載到高級文本控件中的文件名稱。,四、高級文本框控件(RichTextBox),2.常用屬性,四、高級文本框控件(RichTextBox),例:用RichTextBox控件,設(shè)計(jì)一個文本編輯器,利用工具欄格式化文本。,五、Clipboard對象,Clipboard對象用于與Windows系統(tǒng)的剪切板進(jìn)行交換數(shù)據(jù),它使用戶能夠復(fù)制、剪切和粘貼應(yīng)用程序中的文本和圖形。Clipboard對象的方法:1. Clear方法:用于
46、清除剪貼板的內(nèi)容。格式: Clipboard.Clear2. GetFormat方法:用于檢測剪貼板中數(shù)據(jù)的格式。格式: Clipboard.GetFormat(format)說明:format值有:1-文本;2-位圖(.bmp文件)3-位元(.wmf文件);8-與設(shè)備無關(guān)位圖(DIB);9-調(diào)色板;&-HBF01(.RTF格式文本),五、Clipboard對象,3.GetData方法:用于從剪貼板獲取一個圖形數(shù)據(jù)。
47、格式:Clipboard.GatData( [format] )format:可選,如果為0可省略,GetData自動使用適當(dāng)?shù)母袷?。如果Clipboard對象沒有與期望的格式相匹配的圖形,則返回空。4.SetData方法:用于將圖形數(shù)據(jù)傳送到剪貼板中。格式:Clipboard.SetData(data)Data:放置在Clipboard對象中的圖形,可以使用LoadPicture函數(shù)或控件的Picture屬性。5.GetTe
48、xt方法:用于從剪貼板獲取一個文本數(shù)據(jù)。格式:Clipboard.GetText(format)format:可選,默認(rèn)值為1。如果Clipboard對象沒有與期望的格式相匹配的圖形,則返回空。,五、Clipboard對象,6.SetText方法:用于將文本數(shù)據(jù)傳送到剪貼板中。格式:Clipboard.SetText(data,format)data:被放置在剪貼板中的字符串?dāng)?shù)據(jù)。format:可選。指定文本格式。默認(rèn)值為1。
49、例:用RichTextBox控件,設(shè)計(jì)一個文本編輯器,利用Clipboard對象實(shí)現(xiàn)編輯菜單功能(復(fù)制、剪切和粘貼),六、計(jì)時器(Timer控件),計(jì)時器(Timer)控件是在應(yīng)用程序中用來處理按一定時間間隔(Interval)觸發(fā)事件的控件。在運(yùn)行時不可見。1、計(jì)時器有兩個關(guān)鍵屬性:Enabled屬性:當(dāng)該屬性為True時,定時器處于工作狀態(tài)。而當(dāng) Enabled 被設(shè)置為 False 時,停止時鐘工作。因此,定時器的 Enab
50、led 屬性并不同于其它對象的 Enabled 屬性。Interval屬性:計(jì)時器事件之間的時間間隔(毫秒數(shù))。1秒=1000毫秒,Interval=0:屏蔽計(jì)時器。 2、計(jì)時器只有一個事件,即Timer事件。只要 Timer 控件的 Enabled 屬性被設(shè)置為 True 而且 Interval 屬性值大于 0,則 Timer 事件以 Interval 屬性值指定的時間間隔發(fā)生。,六、計(jì)時器(Timer控件),例1:利用計(jì)時器
51、控件,在標(biāo)簽中顯示系統(tǒng)時間。例2:在文本編輯器實(shí)例中,利用計(jì)時器,動態(tài)改變剪切、復(fù)制、粘貼命令的有效性。,活動五、通用對話框控件(CommonDialogBox),通用對話框控件為程序設(shè)計(jì)人員提供了幾種不同類型的對話框,利用這些對話框,可以獲取所需要的信息,打開文件、將文件存盤、選擇顏色、選擇字體、打印、幫助。這些對話框與Windows本身及許多應(yīng)用程序具有相同的風(fēng)格。通用對話框是一種ActiveX控件,把通用對話框控件加到工具箱中
52、,其操作步驟如下:,工程/部件,選定“控件”標(biāo)簽,選定Microsoft Common Dialog Control 6.0,,確定,,,通用對話框控件(CommonDialogBox),1.通用對話框的基本屬性(1)Action屬性該屬性直接決定打開何種類型的對話框。1—Open:打開文件對話框;2—Save As:另存為對話框;3—Color:顏色對話框;4—Font:字體對話框;5—Printer:打印機(jī)對話框;6
53、—Help:幫助對話框。該屬性不能在屬性窗口中設(shè)置,只能在程序中賦值,用于調(diào)出相應(yīng)的對話框。(2)DialogTitle屬性該屬性用來設(shè)置對話框的標(biāo)題,可以是任意字符串。在默認(rèn)情況下,“打開”對話框的標(biāo)題是“打開”,“另存為”對話框的標(biāo)題是“另存為”。,通用對話框控件(CommonDialogBox),2.通用對話框的方法為了打開通用對話框,VB還提供了一組方法,用來打開通用對話框。這些方法是:ShowOpen:打開文件對話框
54、;ShowSave:打開另存為對話框;ShowColor:選擇顏色對話框;ShowFont:選擇字體對話框;ShowPrinter:打開打印對話框;ShowHelp:調(diào)出幫助對話框。,通用對話框控件(CommonDialogBox),對話框類型,通用對話框的類型,Action屬性值,方法,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,打開文件對話框,1,ShowOpen,,,,,,,,,,,,,,,,,,
55、,,,,,保存文件對話框,2,ShowSave,,,,,,,,,,,,,,,,,,,,,,,顏色對話框,3,ShowColor,,,,,,,,,,,,,,,,,,,,,,,字體對話框,4,ShowFont,,,,,,,,,,,,,,,,,,,,,,,打印機(jī)對話框,5,ShowPrinter,,,,,,,,,,,,,,,,,,,,,,,幫助對話框,6,ShowHelp,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
56、,,,,,,一、文件對話框(“打開”和“另存為”對話框),1.文件對話框(打開、保存)需設(shè)置的屬性,,DialogTitle,,屬性:DefaultExt :設(shè)置缺省的文件擴(kuò)展名,如 .txt 或 .doc。 FileName:文件的路徑及文件名(包含路徑); FileTitle:文件名(不包含路徑)。 Filter:指定文件對話框中顯示的文件類型。 格式:[窗體.]對話框名.Filter=
57、描述符1|過濾器1|描述符2|過濾器2…例如, Word文檔(*.doc)|*.doc|文本文件(*.txt)|*.txt|All Files|*.* FilterIndex:用來指定默認(rèn)的過濾器,其設(shè)置值為一整數(shù)。 InitDir:初始路徑。缺省時顯示當(dāng)前目錄。,2.“打開”文件對話框?qū)傩皂?,DialogTitle,,,,FileName,InitDir,Filter,,FilterIndex,,D
58、efaultExt,文本描述,通配符和文件擴(kuò)展名,一、文件對話框(“打開”和“另存為”對話框),3. “另存為”對話框?qū)傩耘c“打開”對話框基本一樣。例:在文本編輯器實(shí)例中,利用文件對話框在RichTextBox控件中實(shí)現(xiàn)打開和保存文件功能。,二、“顏色”對話框,主要屬性: Color:設(shè)置初始顏色,并返回選定的顏色。 Flags:其取值及值的含義見下表。,例、編寫一個應(yīng)用程序,用顏色對話框,改變窗體背景的顏色和標(biāo)簽的顏色。,三
59、、“字體”對話框,1、字體對話框?qū)傩?,,FontBold、FontItalic,,FontSize,,FontStrikethru,,FontUnderline,,Color,,Min、Max指定字體大小的范圍,FontName,Flags屬性:指示所顯示的字體類型,必須設(shè)置。 cdlCFScreenFonts1 屏幕字體 cdlCFPrinterFonts2 打印機(jī)字體 cdlCFBoth
60、 3 打印機(jī)字體和屏幕字體。 cdlCFEffects 256 顯示刪除線和下劃線檢查框以及顏色組合框,三、“字體”對話框,例:在文本編輯器實(shí)例中,利用“字體”對話框在RichTextBox控件中對所選文本進(jìn)行“字體”格式設(shè)置。,四、“打印”對話框,打印對話框是一個標(biāo)準(zhǔn)的打印對話框窗口界面,打印對話框并不能處理打印工作,僅僅是一個供用戶選擇打印參數(shù)的界面。所選參數(shù)存
61、于各屬性中,再由編程來處理打印操作。常用屬性:可以通過屬性頁進(jìn)行設(shè)置(1)Copies屬性指定要打印的文檔的拷貝數(shù)。該屬性值是整型值。(2)FromPage和ToPage屬性指定要打印文檔的頁范圍。如果要使用這兩個屬性,必須把Flags屬性設(shè)置2。(3)Max和Min屬性用來限制FromPage和ToPage的范圍,其中Min指定所允許起始頁碼,Max指定所允許的最后頁碼。,五、“幫助”對話框,幫助對話框除了基本屬性外,還
62、有特殊屬性:(1)HelpCommand屬性(幫助命令)該屬性用于返回或設(shè)置所需要的在線Help幫助類型。一般將該屬性設(shè)置為9。(2)HelpFile屬性(幫助文件)該屬性用于指定Help文件的路徑及文件名稱。即找到幫助文件,再從文件中找到相應(yīng)內(nèi)容,顯示在Help窗口中。,例:在文本編輯器實(shí)例中, 當(dāng)選擇“幫助”按鈕時,就彈出幫助窗口。,六、錯誤處理,1、On Error 語句On Error Resume Next語句:用于
63、設(shè)置當(dāng)系統(tǒng)錯誤產(chǎn)生后,程序?qū)⒗^續(xù)執(zhí)行下一條語句。2、Err 對象Err 對象是一個包含關(guān)于運(yùn)行時錯誤的信息的對象。主要屬性:Number屬性:列出錯誤的序號,當(dāng)值為0時表示沒有產(chǎn)生錯誤。,活動六、字處理軟件的實(shí)現(xiàn),例:,維護(hù)子窗體的狀態(tài)信息,在用戶決定退出MDI應(yīng)用程序時,必須有保存信息的機(jī)會。為了使其能夠進(jìn)行,應(yīng)用程序必須隨時確定自上次保存以來子窗體中的數(shù)據(jù)是否有改變。通過在子窗體中聲明一個公用變量來實(shí)現(xiàn)此功能。例如:
64、 Public bTextChange As Boolean在子窗體中有一個Text1控件,當(dāng)該控件中的Text屬性每一次改變時,Change事件就會將bTextChange設(shè)置為True,表示自上次保存以來Text1的內(nèi)容已經(jīng)改變。 Private Sub Text1_Change bTextChange=True End Sub如果,用戶每次保存子窗體的內(nèi)容時,將bTextChange設(shè)置Fals
65、e,可以提示Text1的內(nèi)容不再需要保存。例如,有一個叫做“保存”(mnuSave)的菜單項(xiàng)和一個用來保存文本框內(nèi)容的名為FileSaveProc的過程: Private Sub mnuSave_Click() FileSaveProc '調(diào)用保存Text1內(nèi)容到文件的過程 bTextChange=False '設(shè)置狀態(tài)變量 End S
66、ub同樣,當(dāng)關(guān)閉當(dāng)前活動子窗體時,判斷bTextChange的狀態(tài),決定是否要存盤,確保文檔的安全性。 Private Sub mnuClose-Click() If bTextChange Then FileSaveProc Unload Me End Sub,項(xiàng)目四小結(jié),本章介紹編寫多文檔應(yīng)用程序的設(shè)計(jì)方法。使學(xué)者在界面設(shè)計(jì)和應(yīng)用程序開發(fā)兩方面都得到提高。主要介紹多文檔界面(MDI
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- vb高級編程
- vb.net高級篇
- vb內(nèi)建函數(shù)與應(yīng)用
- axure高級應(yīng)用
- 高級應(yīng)用技巧
- [vb畢設(shè)]計(jì)算機(jī)高級語言多媒體教學(xué)演示系統(tǒng)
- Excel、Access、VB的結(jié)合應(yīng)用.txt
- Excel、Access、VB的結(jié)合應(yīng)用.txt
- Excel、Access、VB的結(jié)合應(yīng)用.txt
- Excel、Access、VB的結(jié)合應(yīng)用.txt
- Excel、Access、VB的結(jié)合應(yīng)用.txt
- [vb畢設(shè)]計(jì)算機(jī)高級語言多媒體教學(xué)演示系統(tǒng)019
- excel高級應(yīng)用(經(jīng)典)
- word高級應(yīng)用教程
- 圖層的高級應(yīng)用
- word高級應(yīng)用技巧
- 期權(quán)的高級應(yīng)用
- vb081計(jì)算機(jī)高級語言多媒體教學(xué)演示系統(tǒng)019
- vb081計(jì)算機(jī)高級語言多媒體教學(xué)演示系統(tǒng)019
- vb計(jì)算機(jī)高級語言多媒體教學(xué)演示系統(tǒng)(論文+源代碼)
評論
0/150
提交評論