标准模块:
Option Explicit
Public Declare Function ClipCursor Lib "user32" (lprect As Any) As Long
Public Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lppoint As POINTAPI) As Long
Public Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lprect As RECT) As Long
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Type POINTAPI
x As Long
y As Long
End Type
窗体模块:
Option Explicit
Sub clipmouseTowindow(ByVal hwnd As Long)
Dim lppoint As POINTAPI, lprect As RECT
ClientToScreen hwnd, lppoint
GetClientRect hwnd, lprect
lprect.Left = lprect.Left + lppoint.x
lprect.Top = lprect.Top + lppoint.y
lprect.Right = lprect.Right + lppoint.x
lprect.Bottom = lprect.Bottom + lppoint.y
ClipCursor lprect
End Sub
Private Sub CmdClip_Click()
If CmdClip.Caption = "锁定鼠标移动" Then
clipmouseTowindow CmdClip.hwnd
CmdClip.Caption = "释放鼠标"
Else
ClipCursor vbNull
CmdClip.Caption = "锁定鼠标移动"
End If
End Sub
能详细讲解一下sub过程的每一步意义吗?我不大懂,拜托了……
vb的一个部分程序看不懂,谁能解释一下?急!!!!
答案:2 悬赏:20 手机版
解决时间 2021-12-28 20:59
- 提问者网友:蔚蓝的太阳
- 2021-12-27 23:58
最佳答案
- 五星知识达人网友:骨子里都是戏
- 2021-12-28 00:28
'RECT结构表示一个矩形区域
'left : 指定矩形框左上角的x坐标 top: 指定矩形框左上角的y坐标 right: 指定矩形框右下角的x坐标 bottom:指定矩形框右下角的y坐标
'POINT结构用于描叙一个点的位置 坐标X,Y
Sub clipmouseTowindow(ByVal hwnd As Long)
Dim lppoint As POINTAPI, lprect As RECT
ClientToScreen hwnd, lppoint '因为传入的是按钮的句柄 获取了按钮左上角在屏幕的坐标X,Y保存在lppoint结构变量中
GetClientRect hwnd, lprect '获取按钮矩形 保存在lprect结构中
lprect.Left = lprect.Left + lppoint.x '重新设置这个结构变量的值 左上角坐标
lprect.Top = lprect.Top + lppoint.y '左下角
lprect.Right = lprect.Right + lppoint.x '按钮在屏幕左边距X + 按钮宽度 右上角坐标
lprect.Bottom = lprect.Bottom + lppoint.y '右下角 设定完按钮在屏幕中的四个角坐标
ClipCursor lprect '锁定鼠标在这个结构变量坐标范围内
End Sub
'left : 指定矩形框左上角的x坐标 top: 指定矩形框左上角的y坐标 right: 指定矩形框右下角的x坐标 bottom:指定矩形框右下角的y坐标
'POINT结构用于描叙一个点的位置 坐标X,Y
Sub clipmouseTowindow(ByVal hwnd As Long)
Dim lppoint As POINTAPI, lprect As RECT
ClientToScreen hwnd, lppoint '因为传入的是按钮的句柄 获取了按钮左上角在屏幕的坐标X,Y保存在lppoint结构变量中
GetClientRect hwnd, lprect '获取按钮矩形 保存在lprect结构中
lprect.Left = lprect.Left + lppoint.x '重新设置这个结构变量的值 左上角坐标
lprect.Top = lprect.Top + lppoint.y '左下角
lprect.Right = lprect.Right + lppoint.x '按钮在屏幕左边距X + 按钮宽度 右上角坐标
lprect.Bottom = lprect.Bottom + lppoint.y '右下角 设定完按钮在屏幕中的四个角坐标
ClipCursor lprect '锁定鼠标在这个结构变量坐标范围内
End Sub
全部回答
- 1楼网友:酒安江南
- 2021-12-28 01:02
可以。慢慢联系我。团队首页有群号,进来找我。我周末有时间。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯