焦点的有效捕捉客户区域。当鼠标指针移出当前客户区域,应恢复原来的客户区域状态和原来的鼠标光标指针,并清除动态提示窗口。当点击鼠标某个按键后,可通过MouseDown( )函数和设置的当前有效命令区域变量执行相应的功能。
在鼠标移动函数中判断光标指针落入客户区域方法: Private Sub Frame1-MouseMove(Button As Integer,
Shift As Integer, X As Single, Y As Single)
Dim CurHot As Integer
Dim i As Integer
For i = 1 To n ;依次判断n个命令区
If X>RectHots(i).LeftX And X<RectHots(i).RightX
And Y>RectHots(i).TopY And Y<RectHots(i).BottomY Then
CurHot = True ;鼠标指针落入命令区域
Exit For
End If
Next i
鼠标输入焦点的相关提示功能
当前有效的鼠标输入焦点相关提示功能,可根据应用
程序的实际需要,选择其中的一种或几种。各种相关提示功能的实现方法如下:
1. 鼠标光标形状变化 可通过设置用户自定义鼠标光标形状的方法来实现,恢复时只需将其类型设置为默认值。
控件名.MousePointer = 99 ;99为自定义型光标形状
控件名.MouseIcon = LoadPicture(″C:\WINDOWS\CURSORS\HAND-RL.CUR″);光标资源文件
恢复时只需将MousePointer设置为0即可恢复默认值。
2. 动态提示功能 通过设置标签控件及窗口背景色来实现,默认状态为不显示,在需要动态提示窗口时,重新设置其LEFT和TOP位置参数及其Caption属性的内容并置Visible属性为True(可见),取消时只需将标签的属性Visible设置为False即可。
动态提示窗口设置:
Label1.Left = RectHots(i).LeftX
Label1.Top = RectHots(i).TopY
Label1.Caption = RectHots(i).Mess
Label1.Visible = True
动态提示窗口取消:
Label1.Caption = ″″
Label1.Visible = False
3. 改变颜色 只需变换当前客户区域控件的背景颜色值,恢复时只需将其设置成默认值即可。
颜色状态设置:控件.BackColor=&H00000018&
颜色状态恢复:控件.BackColor=&H00000001&
4. 改变命令区凸凹状态 如果命令区域为按钮格式,可通过绘图函数的异或(XOR)属性改变按钮的状态来实现相应的提示功能,鼠标移动出客户区域后再恢复其原来状态。
5. 通过使能属性进行提示 可通过某些控件的Enable属性来控制客户区域的有效状态。
设置方法:控件.Enable=True
取消恢复:控件.Enable=False
6. 其他提示方法 此外还可以通过设置某些控件的其他属性如控件边框的粗细等方法来实现有效区域的提示。
鼠标输入焦点的相关执行功能
当点击鼠标某个按键(左键或右键或双击操作)后,通过MouseDown( )函数和设置的当前有效命令区域变量的内容,来确定命令区域应该执行什么样的相应功能。如显示对话框窗口信息的简单方法如下:
Private Sub Framel_MouseDown(Button As Integer,
Shift As Integer, X As Single, Y As Single)
If CurRect < > 0 Then
MsgBox RectHots(i).DoMess, 0, ″″
End If
End Sub
控制鼠标输入焦点的应用
程序实例
本文提供了一个简单的鼠标输入焦点控制的应用程序实例。
程序中设置了如下控件:
控件 名称 属性 功能
Lable Lable1 显示"输入焦点演示"
Frame Frame1 Picture="C:\WINDOWS\安装
程序.BMP" 放置其他控件并显示图象等的容器
Lable Lable2 AutoSize=True 自动调整窗口大小
Visiable=False 起始状态为不显示
Time Time1 Interv