Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As LongPrivate Type POINTAPI 注释: 声明数据类型
x As Long
y As Long
End TypeDim z As POINTAPI 注释: 变量Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 1
End SubPrivate Sub Timer1_Timer()
GetCursorPos z 注释: 获取坐标
Label1 = "x: " & z.x 注释: 显示 x 坐标
Label2 = "y: " & z.y 注释: 显示 y 坐标
End Sub
x As Long
y As Long
End TypeDim z As POINTAPI 注释: 变量Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 1
End SubPrivate Sub Timer1_Timer()
GetCursorPos z 注释: 获取坐标
Label1 = "x: " & z.x 注释: 显示 x 坐标
Label2 = "y: " & z.y 注释: 显示 y 坐标
End Sub
vbKeyUp 0x26 UP ARROW 键
vbKeyRight 0x27 RIGHT ARROW 键
vbKeyDown 0x28 DOWN ARROW 键
Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
说明
获取鼠标指针的当前位置
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpPoint POINTAPI,随同指针在屏幕像素坐标中的位置载入的一个结构
2、上、下箭头键在VB里无表述,VB对它们没有控制
VB声明
Declare Function GetCaretPos Lib "user32" Alias "GetCaretPos" (lpPoint As POINTAPI) As Long
说明
判断插入符的当前位置
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpPoint POINTAPI,这个结构会随同插入符在窗口客户坐标系统中的位置载入;那个窗口是插入符的父窗口
VB声明
Declare Function ClientToScreen Lib "user32" Alias "ClientToScreen" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
说明
判断窗口内以客户区坐标表示的一个点的屏幕坐标
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hwnd Long,判断客户区坐标时那个窗口的句柄
lpPoint POINTAPI,用hwnd窗口的客户区坐标表示的点,这个参数会包含屏幕坐标系统中相同的点
VB声明
Declare Function ScreenToClient Lib "user32" Alias "ScreenToClient" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
说明
判断屏幕上一个指定点的客户区坐标
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hwnd Long,一个窗口的句柄,该窗口定义了要使用的客户区坐标系统
lpPoint POINTAPI,屏幕坐标系统中包含了屏幕点的结构。这个函数会随同相应的客户区坐标(由hwnd决定)载入结构 vbKey0 vbKeyF5 vbKeyNumpad4
vbKey1 vbKeyF6 vbKeyNumpad5
vbKey2 vbKeyF7 vbKeyNumpad6
vbKey3 vbKeyF8 vbKeyNumpad7
vbKey4 vbKeyF9 vbKeyNumpad8
vbKey5 vbKeyF10 vbKeyNumpad9
vbKey6 vbKeyF11 vbKeyO
vbKey7 vbKeyF12 vbKeyP
vbKey8 vbKeyF13 vbKeyPageDown
vbKey9 vbKeyF14 vbKeyPageUp
vbKeyA vbKeyF15 vbKeyPause
vbKeyAdd vbKeyF16 vbKeyPrint
vbKeyB vbKeyG vbKeyQ
vbKeyBack vbKeyH vbKeyR
vbKeyC vbKeyHelp vbKeyRButton
vbKeyCancel vbKeyHome vbKeyReturn
vbKeyCapital vbKeyI vbKeyRight
vbKeyClear vbKeyInsert vbKeyS
vbKeyControl vbKeyJ vbKeySelect
vbKeyD vbKeyK vbKeySeparator
vbKeyDecimal vbKeyL vbKeyShift
vbKeyDelete vbKeyLButton vbKeySnapshot
vbKeyDivide vbKeyLeft vbKeySpace
vbKeyDown vbKeyM vbKeySubtract
vbKeyE vbKeyMButton vbKeyT
vbKeyEnd vbKeyMenu vbKeyTab
vbKeyEscape vbKeyMultiply vbKeyU
vbKeyExecute vbKeyN vbKeyUp
vbKeyF vbKeyNumlock vbKeyV
vbKeyF1 vbKeyNumpad0 vbKeyW
vbKeyF2 vbKeyNumpad1 vbKeyX
vbKeyF3 vbKeyNumpad2 vbKeyY
vbKeyF4 vbKeyNumpad3 vbKeyZ
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Dim lStep As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Dim lPos As POINTAPI
GetCursorPos lPos
Select Case KeyCode
Case 37
lPos.x = lPos.x - lStep
Case 38
lPos.y = lPos.y - lStep
Case 39
lPos.x = lPos.x + lStep
Case 40
lPos.y = lPos.y + lStep
End Select
SetCursorPos lPos.x, lPos.y
End SubPrivate Sub Form_Load()
lStep = 10
End Sub
作 者:bitcat
所属论坛:Visual Basic
问题点数:95
回复次数:14
发表时间:2002-1-9 17:02:04
另外,请问上、下箭头键在VB里如何表述,象 vbKeyAscii=vbkeyReturn 表示回车键一样。谢谢!
1.捕捉光标在窗体上的位置
GetCursorPos上面没有人回答吗 Jneu(沧海桑田) ljren_t(立志) yangzhaoyu(老妖)
2.上、下箭头键在VB里如何表述,象 vbKeyAscii=vbkeyReturn
上面没有人解释吗? Jneu(沧海桑田) ljren_t(立志)
KeyAscii不可能发生在KEYDOWN中,谁会知道你问"东"却要"西"的答案
即使是KEYDOWN,不和KEYUP中的表述一样用KeyCode的吗? yangzhaoyu(老妖)回复人: bitcat(苍穹一啸) (2002-1-10 11:37:55) 得0分
什么呀,我问的是光标的位置,另外,第二个事件我用 KEYDOWN 事件解决了,他们都没答! !!!!!