在设计应用程序时,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文件作为缺省的鼠 标光标;将鼠标指针离开该控件时,光标则会自动恢复为缺省的形状。