在設計應用程序時,Visual Basic允許程序員將許多控件的Mouse Pointer屬性設計成12個預先定義好的鼠標光標之一。典型情況是程 序員希望改變一個控件的MousePointer 屬性,以告訴程序的用戶正在 或已經進行某種類型的行為,例如,沙漏光標表示一個消耗時間的過程 。另外,可以改變光標來通知用戶他已經將鼠標的指針指向了一個特 殊的控件,如一個文件列表框。要做到這些,程序員只需要簡單地在Vi sual Basic程序中在適當時刻改變該控件的MousePointer屬性即可。
然而,有些程序員或許會希望顯示一個12個預定義形狀中的光標 之外的光標。本文說明如何創建不同的鼠標指針(光標),包括為一個 沒有MousePointer屬性的控件創建光標。
改變光標(鼠標指針)
要在Visual Basic應用程序中將光標(鼠標指針)改變成不同的形 狀,需添加代碼來改變希望監視的控件的MouseMove和DragOver事件。
MouseMove事件所包含的代碼用於觸發該控件的Drag方法。當鼠 標在被選中的控件上移動時,輪流顯示新的鼠標指針。當鼠標指針離 開該控件時,DragOver事件被觸發。在Vi sual Basic程序中,可以重 新復位此Drag屬性,以便以前的鼠標指針能夠再次顯示出來。
樣例程序
下面的程序實現當鼠標指針移動到一個文件列表框控件上時,將 其改變成不同的形狀。
1.在Visual Basic中開始一個新的工程,采用缺省的方法建立For m1。
2.在Form1上添加一個文件列表框控件,采用缺省的方法建立File1。
3.將File1控件的DragIcon屬性設置為所選擇的.ICO文件。
4.將如下代碼添加到File1的MouseMove事件中:
Private Sub File1_MouseMove(Button As Integer, Shift As Integer, X As Si ngle, Y As Single) File1.Drag 1 icon on End Sub
5.將如下代碼添加到Form1的DragOver事件中:
Private Sub Form_DragOver(Source As Control, X As Single , Y As Single, State As Integer) File1.Drag 0 icon off End Sub
按下F5功能鍵執行此程序。得到的運行結果是:將鼠標指針移動 到該文件列表框控件上時,程序將把所選中的.ICO文件作為缺省的鼠 標光標;將鼠標指針離開該控件時,光標則會自動恢復為缺省的形狀。