在Windows 95中刪除一個文件或文件夾,只需用鼠標(biāo)拖動文件(夾)到回收站,然后松開鼠標(biāo)按鈕即可,這種可視化的操作給用戶帶來了很大方便。如果程序開發(fā)人員在自己的程序中能做到這樣,在自己的程序中也增加一個和Windows中風(fēng)格相同的回收站,那么開發(fā)出的程序一定會受到用戶的歡迎。怎么才能完成這種操作呢?本文介紹一種使用Visual Basic編程來完成這個動作的方法。
在Microsoft Windows資料中將按下鼠標(biāo)按鈕移動對象稱為拖,將鼠標(biāo)按鈕的松開稱為放。在Visual Basic中,如果項目中使用多個窗體,可以把一個圖標(biāo)從一個窗體拖放到另一個窗體。控件允許兩種拖動,這取決于DragMode特性的兩個不同的值。缺省情況是DragMode特性的值為0,除特定情況外不允許拖動控件;將這個特性的值改成1(Automatic)意味著用戶可以拖動控件。
下面介紹拖動鼠標(biāo)刪除文件方法的實現(xiàn)過程。在Visual Basic的項目中允許用戶拖動代表文件的圖標(biāo)至處理單元,此單元相當(dāng)于Windows 95中的回收站,在給出警告之后把文件從磁盤中刪除。
第一步,首先啟動一個有兩個窗體的項目,在啟動窗體的下角加一個圖片框(或圖像控件),將這個控件的Picture特性設(shè)置成TRASH03.ICO文件中的圖標(biāo),該文件位于Icon庫的Computer子目錄中。如果使用圖片框,將AutoSize特性設(shè)置成True(如果選擇一個圖像控件,將Stretch特性設(shè)置成False)。
第二步,建立兩個控件數(shù)組,一個是控件名為FileName的標(biāo)簽數(shù)組,另一個名字為Files的圖像控件數(shù)組。將圖像控件的DragMode特性設(shè)置成1(Automatic);將Visble特性設(shè)置成False,使標(biāo)簽和圖像控件在運行時都不可見。通常,這些控件數(shù)組中的所有后續(xù)元素都繼承這些特性。
這個項目中的大多數(shù)工作都體現(xiàn)在下面的DragDrop事件過程中:
Private Sub Garbage_DragDrop(Source As Control,X As Single,Y As Single)
‘local variables
Dim Msg As String
Dim ControlIndex As Integer,YesNo As Integer
ControlIndex=Source.Index
Forml.FileName(ControlIndex).Visble=False
Msg= "Do you really want to delete"+
Forml.FileName(ControlIndex).Caption
YesNo=MsgBox(Msg,vbYesNo, "Confirmation Box")
If YesNo=vbYes Then
Kill(Forml.FileName(ControlIndex).Caption)
Unload Files(ControlIndex)
Unload Forml.FileName(ControlIndex)
Else
Forml.FileName(ControlIndex).Visible=True
Forml.File(ControlIndex).Visible=True
End If
End Sub
該事件過程中的ControlIndex這一行代碼找出被拖動控件的索引;接下來的兩行代碼使圖片框和標(biāo)簽在放置操作后暫時不可見。ControlIndex變量讓Visual Basic從標(biāo)簽數(shù)組中提取標(biāo)題(也就是文件名)。消息框的類型為=vbYesNo,因此是個Yes/No消息框,標(biāo)題是Confirmation Box。Kill命令從磁盤中刪除文件。一旦程序刪除了文件,就從控件數(shù)組中卸除標(biāo)簽和圖片框。如果用戶操作有誤,確認(rèn)的消息框返回No,則程序代碼使得原來的圖片框和標(biāo)簽再次顯現(xiàn)。
下一步,建立一個稱為Directons的通用過程,在一個窗體上顯示出給用戶提供的這個應(yīng)用程序所需的信息,該窗體用作一個定制對話框。
Sub Directons ()
Forml.Hide
Form2.Show
Form2.Cls
Form1.Print "This program illustrates dragging and dropping mouse operations."
Form2.Print "The user gives a file spec inside the message box and a form"
Form2.Print "appears with icons labelled by all the files with that file specifcation."
Form2.Print "The user can drag the icon to be ´flushed´ away i. e. deleted."
End Sub
對話框上OK按鈕的Click過程是:
Private Sub btnOK-Click ()
Me.Hide
Form1.Show
End Sub
在Microsoft Windows資料中將按下鼠標(biāo)按鈕移動對象稱為拖,將鼠標(biāo)按鈕的松開稱為放。在Visual Basic中,如果項目中使用多個窗體,可以把一個圖標(biāo)從一個窗體拖放到另一個窗體。控件允許兩種拖動,這取決于DragMode特性的兩個不同的值。缺省情況是DragMode特性的值為0,除特定情況外不允許拖動控件;將這個特性的值改成1(Automatic)意味著用戶可以拖動控件。
下面介紹拖動鼠標(biāo)刪除文件方法的實現(xiàn)過程。在Visual Basic的項目中允許用戶拖動代表文件的圖標(biāo)至處理單元,此單元相當(dāng)于Windows 95中的回收站,在給出警告之后把文件從磁盤中刪除。
第一步,首先啟動一個有兩個窗體的項目,在啟動窗體的下角加一個圖片框(或圖像控件),將這個控件的Picture特性設(shè)置成TRASH03.ICO文件中的圖標(biāo),該文件位于Icon庫的Computer子目錄中。如果使用圖片框,將AutoSize特性設(shè)置成True(如果選擇一個圖像控件,將Stretch特性設(shè)置成False)。
第二步,建立兩個控件數(shù)組,一個是控件名為FileName的標(biāo)簽數(shù)組,另一個名字為Files的圖像控件數(shù)組。將圖像控件的DragMode特性設(shè)置成1(Automatic);將Visble特性設(shè)置成False,使標(biāo)簽和圖像控件在運行時都不可見。通常,這些控件數(shù)組中的所有后續(xù)元素都繼承這些特性。
這個項目中的大多數(shù)工作都體現(xiàn)在下面的DragDrop事件過程中:
Private Sub Garbage_DragDrop(Source As Control,X As Single,Y As Single)
‘local variables
Dim Msg As String
Dim ControlIndex As Integer,YesNo As Integer
ControlIndex=Source.Index
Forml.FileName(ControlIndex).Visble=False
Msg= "Do you really want to delete"+
Forml.FileName(ControlIndex).Caption
YesNo=MsgBox(Msg,vbYesNo, "Confirmation Box")
If YesNo=vbYes Then
Kill(Forml.FileName(ControlIndex).Caption)
Unload Files(ControlIndex)
Unload Forml.FileName(ControlIndex)
Else
Forml.FileName(ControlIndex).Visible=True
Forml.File(ControlIndex).Visible=True
End If
End Sub
該事件過程中的ControlIndex這一行代碼找出被拖動控件的索引;接下來的兩行代碼使圖片框和標(biāo)簽在放置操作后暫時不可見。ControlIndex變量讓Visual Basic從標(biāo)簽數(shù)組中提取標(biāo)題(也就是文件名)。消息框的類型為=vbYesNo,因此是個Yes/No消息框,標(biāo)題是Confirmation Box。Kill命令從磁盤中刪除文件。一旦程序刪除了文件,就從控件數(shù)組中卸除標(biāo)簽和圖片框。如果用戶操作有誤,確認(rèn)的消息框返回No,則程序代碼使得原來的圖片框和標(biāo)簽再次顯現(xiàn)。
下一步,建立一個稱為Directons的通用過程,在一個窗體上顯示出給用戶提供的這個應(yīng)用程序所需的信息,該窗體用作一個定制對話框。
Sub Directons ()
Forml.Hide
Form2.Show
Form2.Cls
Form1.Print "This program illustrates dragging and dropping mouse operations."
Form2.Print "The user gives a file spec inside the message box and a form"
Form2.Print "appears with icons labelled by all the files with that file specifcation."
Form2.Print "The user can drag the icon to be ´flushed´ away i. e. deleted."
End Sub
對話框上OK按鈕的Click過程是:
Private Sub btnOK-Click ()
Me.Hide
Form1.Show
End Sub