VisualBasic清華大學vb編程語言基礎第10講.ppt_第1頁
VisualBasic清華大學vb編程語言基礎第10講.ppt_第2頁
VisualBasic清華大學vb編程語言基礎第10講.ppt_第3頁
VisualBasic清華大學vb編程語言基礎第10講.ppt_第4頁
VisualBasic清華大學vb編程語言基礎第10講.ppt_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第十講,界面設計,內容提要,鼠標和鍵盤 通用對話框 制作菜單 下拉菜單 彈出式菜單,鼠標指針形狀,鼠標,MousePointer屬性決定鼠標指針進入控件區(qū)域時顯示的形狀。,對象名.MousePointer = 值,鼠標指針形狀,鼠標,自定義鼠標指針,鼠標,當MousePointer屬性被設置為99時,可利用MouseIcon屬性自定義鼠標指針。,對象名.MouseIcon=LoadPicture(文件路徑),對象名.MouseIcon=另一對象名.Picture,MousePointer = 99 Form1.MouseIcon = LoadPicture(c:fire.ico),可在設計階段

2、通過屬性窗口設置,也可在運行階段通過代碼設置,鼠標事件,鼠標,Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single

3、, Y As Single) End Sub,鼠標事件過程中的參數,鼠標,Button參數,Button=1 左鍵被按下 Button=2 右鍵被按下 Button=4 中鍵被按下,1vbLeftButton 2vbRightButton 4vbMiddleButton,使用符號常數,鼠標事件過程中的參數,鼠標,Shift參數,Shift=1 Shift鍵被按下 Shift=2 Ctrl鍵被按下 Shift=4 Alt鍵被按下,Shift=3 按下Shift+Ctrl.,1vbShiftMask 2vbCtrlMask 4vbAltMask,使用符號常數,鼠標事件過程中的參數,X,Y參數 對應

4、當前鼠標指針所在的坐標,與X,Y相關的屬性是 CurrentX ,CurrentY。 CurrentX ,CurrentY記錄繪圖命令運行完畢時的X,Y值。其默認值是0,0。,Line -(500,500),畫(0,0)到(500,500)的直線, CurrentX=500 CurrentY=500,鼠標,鼠標事件-例1,Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Line -(X, Y) Circle (X, Y), 40 End Sub,移動鼠標時畫圖,鼠

5、標,鼠標事件-例2,單擊鼠標左鍵,隨手畫,單擊鼠標右鍵,畫直線,Dim drawit As Boolean,Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then drawit = True CurrentX = X CurrentY = Y Else If Button = 2 Then Line -(X, Y) End If End If End Sub,鼠標,鼠標事件-例2,Private Sub Form_MouseMove(

6、Button As Integer, Shift As Integer, X As Single, Y As Single) If drawit Then Line -(X, Y) End If End Sub,Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then drawit = False End If End Sub,鼠標,鍵盤事件,鍵盤,KeyPress事件 按下并釋放一個能產生ASCII碼的鍵時觸發(fā) KeyDown事件 按下鍵

7、盤上任何一個鍵時觸發(fā) KeyUp事件 釋放鍵盤上任何一個鍵時觸發(fā),KeyPress事件,Private Sub form_KeyPress(KeyAscii As Integer) End Sub,Private Sub 控件名_KeyPress(Index as Integer, KeyAscii As Integer) End Sub,KeyAscii 返回按下鍵的Ascii 碼 默認情況下,只有窗體上具有焦點的對象才能接收KeyPress事件,而窗體本身不會接收KeyPress事件 窗體接收KeyPress事件 窗體上沒有可視和有效的控件 窗體的KeyPreview屬性設置為True,K

8、eyPreview 屬性,窗體的KeyPreview屬性設置為True時,窗體先接收KeyPress事件,然后控件繼續(xù)接收該事件。,假定窗體KeyPreview為True,并有下面事件過程, 則當文本框中輸入“1”時,實際上是得到的是“3”,Sub Form_KeyPress(KeyAscii As Integer) KeyAscii = KeyAscii + 1 End Sub,Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = KeyAscii + 1 End Sub,?窗體KeyPreview為False時 在文本框中輸入“1”時,實際上

9、得到的是什么。,KeyPreview 屬性-例,文本框中只能輸入大寫字母,Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = 65 And KeyAscii = 90 Then Text1.Text = Text1.Text & Chr(KeyAscii) End If End Sub,Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = 0 End Sub,把窗體的KeyPreview 屬性設置為 True,KeyDown和KeyUp事件,Sub Form_K

10、eyDown(keycode As Integer, shift As Integer),Sub 對象_KeyDown(index As Integer,keycode As Integer, shift As Integer),Sub Form_KeyUp(keycode As Integer, shift As Integer),Sub 對象_KeyUp(index As Integer,keycode As Integer, shift As Integer),Shift參數與鼠標事件過程的Shift相同 KeyCode:鍵盤掃描碼,KeyPress和 KeyCode區(qū)別,拖放,拖放是一

11、種重要的鼠標操作,VB提供的與鼠標拖放有關的屬性、方法和事件為: DragMode屬性 有兩個取值:0和1(缺省是) 取0時,手工拖動模式。必須在MouseDown事件過程中,使用Drag方法啟動拖操作 取1時,自動拖動模式,該控件不再接收Click和MouseDown事件。,拖放,Drag方法 用于除Line、Menu 、Shape、Timer、CommonDialog之外的任何控件的開始、結束、取消拖動操作。,對象名稱.drag action,action參數取值: 0- 取消拖放操作,不調用DragDrop事件過程 1-開始拖放操作,調用DragDrop事件過程,缺省設置 2-結束拖放操

12、作,調用DragDrop事件過程,拖放,DragOver事件 當拖動源對象到某個對象上時,觸發(fā)該對象的DragOver事件,Sub 對象名_DragOver(Source As Control,X As Single,Y As Single, State As Integer) End Sub,Source是被拖動的控件,含有被拖動對象的屬性 x,y為當前鼠標指針的坐標位置 State是一個整數,可取,,拖放,DragDrop事件 當拖動源對象到某個對象上釋放鼠標時,或使用Drag方法,將其值設為2時,觸發(fā)該對象的DragDrop事件,Sub 對象名_DragDrop(Source As Co

13、ntrol,X As Single,Y As Single) End Sub,x,y為釋放鼠標按鈕時鼠標指針的坐標位置,拖放例,在窗體上可任意拖動的圖標,Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) Picture1.Move X, Y End Sub,Picture1 的DragMode=1,拖放例,手動拖動模擬文件操作:從文件夾中取出文件,放入文件柜,放入之前先打開抽屜。,拖放例,Private Sub Command1_Click() End End Sub,拖放例,Private Sub c

14、abinet_DragOver(Source As Control, X As Single, Y As Single, State As Integer) If Source.Tag = Folder Then cabinet.Picture = LoadPicture(files03b.ico) End If If State = 1 Then cabinet.Picture = LoadPicture(files03a.ico) End If End Sub,Private Sub cabinet_DragDrop(Source As Control, X As Single, Y As

15、 Single) If Source.Tag = Folder Then cabinet.Picture = LoadPicture(files03a.ico) Label1.Caption = Folder recieved End If End Sub,OLE 拖放,把數據從一個控件或應用程序中移到另一個控件或應用程序中,就是OLE拖放 OLEDragMode屬性 (源控件設置) 0-Manual:缺省,手工 1-Automatic:自動 OLEDropMode屬性 (目標控件設置): 0-None:缺省,目標控件不接受“放”; 1-Manual:手工實現“放”操作; 2-Automati

16、c:自動實現“放”,OLE 拖放,VB中幾乎所有的控件都支持OLE拖放 完全支持自動OLE拖放 PictureBox、Image、TextBox 支持自動“拖”操作,不支持自動“放” ComboBox、FileListBox、DirListBox和ListBox 支持OLE拖放事件的控件 CheckBox、Frame、OptionButton、Label、 DriveListBox、 CommandButton,OLE 拖放-例,Private Sub Label1_OLEDragDrop(Data As DataObject, Effect As _ Long, Button As Inte

17、ger, Shift As Integer, X As Single, Y As Single) Label1.Caption = Data.Files(1) End Sub,從資源管理器中選一個文件拖到標簽上,通用對話框,Visual Basic的通用對話框控件提供了一組標準的Windows對話框,分別是:“打開” 、“另存為”、“顏色”、“字體”、“打印”和“幫助”對話框 通用對話框控件是ActiveX控件, 位于“Microsoft CommonDialog Control 6.0” 中。 在設計階段,通用對話框以圖標形式顯示在窗體上,其大小不能改變,在運行階段,通用對話框隱藏。,通用對

18、話框,需要用Action 屬性或Show方法激活方可調出相應的對話框,Action屬性只能在運行階段用程序設置或引用 通用對話框只是輸入/輸出的界面,不能真正實現如文件打開、保存等操作,要實現這些功能必須要編寫程序。,通用對話框屬性,DialogTitle屬性 用于設置對話框的標題 CancelError屬性 用于設置當用戶單擊通用對話框的“取消”按鈕時,是否產生出錯信息,有兩個取值: True和False True:出現錯誤警告。 False:不出現錯誤警告,缺省設置。,Action屬性,“打開”對話框,用來遍歷整個磁盤,找到所需的文件,是Windows應用程序中常用的對話框,具有通用對話框

19、的通用屬性 FileName屬性 用于設置或返回要打開文件的路徑及文件名,屬性值為字符串,“打開”對話框,Filter屬性 用于指定過濾文件的類型,只有指定的文件類型,才出現在“文件類型”列表框中, 設計階段:說明1| 文件類型1| 說明2| 文件類型2 運行階段: 對話框名.Filter=“說明1| 文件類型1| 說明2| 文件類型2”,用于返回打開文件的文件名 在設計時無效,在運行時只讀 與FileName屬性不同之處是該屬性不返回路徑,FileTitle屬性,“打開”對話框,FilterIndex屬性 用來指定缺省的過濾器,用Filter屬性設置多個過濾器后,每個過濾器自動獲得一個值,第

20、一個過濾器的值是1,第二個過濾器的值是2, InitDir屬性 用于指定“打開”對話框中的初始目錄,缺省顯示當前目錄,“另存為”對話框,是Windows存儲文件時的一個標準界面,可供用戶選擇和輸入保存文件的路徑和文件名,具有通用對話框的通用屬性 具有“打開”對話框的屬性 DefaultExt屬性 表示保存文件的缺省擴展名 當保存的文件沒有擴展名時,自動給該文件添加由DefaultExt屬性指定的擴展名,“打開”和“保存”對話框 例,圖片瀏覽和保存功能,Private Sub Command1_Click() CommonDialog1.ShowOpen Image1.Picture = Loa

21、dPicture(CommonDialog1.FileName) End Sub,Private Sub Command2_Click() CommonDialog1.ShowSave SavePicture Image1.Picture, CommonDialog1.FileName End Sub,“顏色”對話框,是Windows環(huán)境下設置顏色的一個標準界面 具有通用對話框的通用屬性 Color屬性,用于設置初始顏色,并可返回用戶所選擇的顏色 Flags屬性 用于設置“顏色”對話框的類型,有四種取值1、2、4、8 1:使Color屬性定義的顏色在首次顯示對話框時顯示出來 2:打開完整的“顏

22、色”對話框 4:只有基本顏色窗口,禁止打開自定義顏色窗口 8:顯示一個“幫助”按鈕,“字體”對話框,設置并返回所用字體的名字、字形、大小、效果和顏色 具有通用對話框的通用屬性 Flags屬性,設置通用對話框是否顯示屏幕字體、打印機字體或兩者皆有,是必須設置的屬性,Flags屬性必須是下列常數之一與其他選項之和: cdlCFScreenFonts或1:屏幕字體 cdklCFPrinterFonts或2:打印機字體 cdlCFBoth或3:兩種字體都有,“字體”對話框,Flag屬性設為259(3+256)是3與常數cdlcFEffects(256,允許中劃線、下劃線和顏色選項)之和,“字體”對話框

23、中出現顏色、效果選項,Font屬性集 包括六個屬性,設置字體名稱、大小、是否加粗、是否傾斜等,FontName FontSize FontBold,FontItalic FontStrikethru FontUnderline,Color屬性 返回用戶設置的字體顏色,在使用Color屬性之前,必須確保Flag屬性中含有cdlcFEffects值。,“顏色”和“字體”對話框-例,使用“顏色”對話框和“字體”對話框設置文本框的背景色、前景色和字體。“字體”對話框中要求出現效果和顏色選項,“顏色”和“字體”對話框-例,Private Sub Command1_Click() CommonDialog

24、1.ShowColor Text1.BackColor = CommonDialog1.Color End Sub,Private Sub Command2_Click() CommonDialog1.ShowColor Text1.ForeColor = CommonDialog1.Color End Sub,Private Sub Command3_Click() CommonDialog1.ShowFont Text1.FontName = CommonDialog1.FontName Text1.FontSize = CommonDialog1.FontSize Text1.FontB

25、old = CommonDialog1.FontBold Text1.FontItalic = CommonDialog1.FontItalic Text1.FontUnderline = CommonDialog1.FontUnderline Text1.FontStrikethru = CommonDialog1.FontStrikethru Text1.ForeColor = CommonDialog1.Color End Sub,“打印”對話框,FromPage:起始頁號 ToPage:終止頁號 Copies:打印份數,菜單,菜單是Windows環(huán)境下應用程序的重要組成部分,有下拉菜單

26、和彈出式菜單兩種。,Visual Basic中,把每個菜單項和菜單名都看作是一個控件,并具備屬性和事件,把每個菜單項都看成是一個命令按鈕,可對其Click事件編制程序,使用“菜單編輯器”創(chuàng)建菜單,“工具”/“菜單編輯器”命令,“標題” :輸入菜單或菜單項的名稱 “名稱”:輸入菜單的控件名,用于在程序代碼中訪問菜單名或菜單項。,“標題”和“名稱”屬性是每個菜單名或菜單項必須要設置的,菜單制作的步驟,在“標題”文本框中輸入菜單名或菜單項的名稱 在“名稱”文本框中輸入菜單名或菜單項的控件名稱 根據情況在屬性區(qū)域中設置菜單名或菜單項的其它屬性(可選) 單擊“下一個”按鈕,創(chuàng)建下一級菜單項,使用編輯區(qū)域

27、的向右箭頭和向左箭頭設置菜單項的層次 重復上述四個步驟,直到完成所有菜單的設計 單擊“確定”按鈕,關閉“菜單編輯器”窗口,菜單編輯的說明,訪問鍵的設置: 在“標題”文本框中菜單內容的后面輸入連接符“&”,并在其后跟一個字母 分隔線的設置: 在 “標題”文本框中輸入減號“-” 菜單項升級或降級: 編輯區(qū)域的左、右箭頭使選中的菜單項增加或降低一個菜單級別,上下箭頭可使選中的菜單項在同級菜單內向上或向下移動一個顯示位置。 產生新菜單項: “下一個”按鈕,菜單編輯-例1,創(chuàng)建一個簡易文本編輯器,菜單編輯-例1,Private a As String,Private Sub EditCopy_Click

28、() a = Text1.SelText editpaste.Enabled = True End Sub,Private Sub EditCut_Click() a = Text1.SelText Text1.SelText = editpaste.Enabled = True End Sub,Private Sub EditPaste_Click() Text1.SelText = a End Sub,Private Sub FontKaiti_Click() Text1.FontName = 楷體_GB2312 End Sub,Private Sub FontLishu_Click()

29、Text1.FontName = 隸書 End Sub,Private Sub FontSize18_Click() Text1.fontsize = 18 End Sub,Private Sub FontSize24_Click() Text1.fontsize = 24 End Sub,菜單編輯-例1,Private Sub FontSize36_Click() Text1.fontsize = 36 End Sub,Private Sub FontSize48_Click() Text1.fontsize = 48 End Sub,Private Sub StyleBold_Click() Text1.FontBold = Not Text1.FontBold StyleBold.Checked = Not StyleBold.Checked End Sub,Private Sub StyleItalic_Click() Text1.FontItalic = Not Text1.FontItalic StyleItalic.Checked = Not StyleItalic.Checked End Sub,彈出式菜單,用鼠標單擊時彈出的菜單 獨立于窗體的菜單欄,而且可根據用戶單擊鼠標時的位置,顯示不同的菜單內容 使用“菜單編輯器” 只須把

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論