Visual Basic - saber posicion del cursor

Life is soft - evento anual de software empresarial
   
Vista:

saber posicion del cursor

Publicado por Fernando Alonso (1 intervención) el 19/06/2010 13:20:02
Hola:

Como puedo programar para saber la posición del cursor de texto dentro de una tabla, ya que estoy programando un teclado en pantalla en vb moviendome mediante tabulador y necesito saber la posicion del tab para hacer un click sobre la celda actual.
tambien me vale si hay manera de hacer un click en posicion de cursor.
gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:saber posicion del cursor

Publicado por Javier (44 intervenciones) el 19/06/2010 18:00:07
buenas te paso un buen ejemplo, luego adaptado a tu necesidad.

crea un Modulo

Module1
Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
'
Declare Sub SetCursorPos Lib "user32" (ByVal X As Integer, ByVal Y As Integer)
Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Type POINTAPI
X As Long
Y As Long
End Type
'
Declare Sub mouse_event Lib "user32" (ByVal dwflags As Long, ByVal dx As Long, ByVal dy As Long, _
ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Global Const MOUSEEVENTF_LEFTDOWN = &H2 ' botón izquierdo presionado
Global Const MOUSEEVENTF_LEFTUP = &H4 ' botón izquierdo soltado

---
en el formulario 4 textbox "Text1","Text2","Text3","Text4" , 1 boton "Command1" y 1 timer "Timer1"

Dim Mouse As POINTAPI
Private Sub Command1_Click()
Call SetCursorPos(Text3, Text4)

For i = 1 To 2
mouse_event MOUSEEVENTF_LEFTDOWN, Mouse.X, Mouse.Y, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, Mouse.X, Mouse.Y, 0, 0
Next i

End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyCode = 112 Then
Text4 = Text1
text5 = Text2
End If
End Sub

Private Sub Text1_Change()

End Sub

Private Sub Timer1_Timer()
Call GetCursorPos(Mouse)
Text1.Text = Mouse.X
Text2.Text = Mouse.Y

For i = 0 To 255

If GetAsyncKeyState(i) = -32767 Then

Select Case i
Case 119 'F8
Text3 = Mouse.X
Text4 = Mouse.Y
Case 120 'F9
Command1_Click
End Select

End If

Next
End Sub

en los text 1 , 2 veras la posicion actual el cursor y mediante "F8" capturas la posicion el los tex3 y 4, el boton lanzara las pulsaciones el la posicion Tex3 y 4.

suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar