elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Duda GetCursorPos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda GetCursorPos  (Leído 2,611 veces)
h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Duda GetCursorPos
« en: 29 Junio 2009, 03:41 am »

Hola... Estoy en un proyecto donde utilizo la función mencionada, con el fin de mostrar en una etiqueta la posición exacta del mouse a medida que se va moviendo. El problema es que lo utilizo de la siguiente manera:

Código
  1. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  2.    GetCursorPos pt
  3.    Label3.Caption = "X:" & Str$(pt.x) & " Y:" + Str$(pt.y)
  4. End Sub

Ciertas veces, es medio "lenta" la letura y cuando muevo el mouse tarda un segundo y medio en refrescar. Será mejor colocar un timer?


En línea

h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Re: Duda GetCursorPos
« Respuesta #1 en: 29 Junio 2009, 03:52 am »

Para no abrir otro thread... Utilizo este procedimiento para obtener una posicion guardada en un textfile para luego ubicar mi mouse en esa posición, pero resulta que la posición obtenida por mi getcursorpos la obtiene del formulario y no de la pantalla, ya que el setcursorpos difiere uno 10x X 10y  :-\

Código
  1. Private Sub Command1_Click()
  2. Open "C:\posicion.txt" For Input As #1
  3. Dim s_linea As String, s_file As String
  4. Do Until EOF(1)
  5. Line Input #1, s_linea
  6. s_file = s_file + s_linea + vbCrLf
  7. Loop
  8. Close #1
  9. f_posx = Mid(s_file, 4, 3)
  10. f_posy = Mid(s_file, 11, 3)
  11. i_posx = Val(f_posx)
  12. i_posy = Val(f_posy)
  13. Dim RT_val As Long
  14. RT_val = SetCursorPos(i_posy, i_posx)
  15. End Sub


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Duda GetCursorPos
« Respuesta #2 en: 29 Junio 2009, 03:53 am »

Hola... Estoy en un proyecto donde utilizo la función mencionada, con el fin de mostrar en una etiqueta la posición exacta del mouse a medida que se va moviendo. El problema es que lo utilizo de la siguiente manera:

Código
  1. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  2.    GetCursorPos pt
  3.    Label3.Caption = "X:" & Str$(pt.x) & " Y:" + Str$(pt.y)
  4. End Sub

Ciertas veces, es medio "lenta" la letura y cuando muevo el mouse tarda un segundo y medio en refrescar. Será mejor colocar un timer?

Tu codigo se corre SOLO CUANDO SE PASA el Mouse sobre el FORM DIRECTAMENTE No aplica sobre controles.¡!, asi que no se ve la real utilidad del codigo si es que puedes usar las variables de X y Y de tal evento en lugar de la API,

Si lo que quieres es que en todo momento muestre la pos X y Y ponlo en un Timer de lo contrario solo seria el Switch en cada X evento (en este caso el MouseMove del Form).
En línea

The Dark Shadow is my passion.
h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Re: Duda GetCursorPos
« Respuesta #3 en: 29 Junio 2009, 03:55 am »

Muchas gracias BlackZeroX... Eso explica tal vez mi otra duda
Citar
pero resulta que la posición obtenida por mi getcursorpos la obtiene del formulario y no de la pantalla
Ahora lo pruebo.
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Duda GetCursorPos
« Respuesta #4 en: 29 Junio 2009, 03:57 am »

Muchas gracias BlackZeroX... Eso explica tal vez mi otra duda
Citar
pero resulta que la posición obtenida por mi getcursorpos la obtiene del formulario y no de la pantalla
Ahora lo pruebo.

GEtCursorPos (APi obtiene de la pantalla completa segun tu resoluciona ctual

los valores X y Y solo del Formualrio tomando en cuenta SOLO el tamaño del mismo)
En línea

The Dark Shadow is my passion.
h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Re: Duda GetCursorPos
« Respuesta #5 en: 29 Junio 2009, 03:58 am »

Exactamente

Código
  1. Private Sub Timer3_Timer()
  2.    Dim x As Single
  3.    Dim y As Single
  4.    GetCursorPos pt
  5.    Label3.Caption = "X:" & Str$(pt.x) & " Y:" + Str$(pt.y)
  6. End Sub

Y ahora mi setcursorpos funciona para toda la pantalla y de manera correcta... La verdad no se si existirá una manera de sustituir mi timer con otra api...

Gracias  BlackZeroX
En línea

el_c0c0


Desconectado Desconectado

Mensajes: 307


Ver Perfil
Re: Duda GetCursorPos
« Respuesta #6 en: 29 Junio 2009, 05:20 am »

Exactamente

Código
  1. Private Sub Timer3_Timer()
  2.    Dim x As Single
  3.    Dim y As Single
  4.    GetCursorPos pt
  5.    Label3.Caption = "X:" & Str$(pt.x) & " Y:" + Str$(pt.y)
  6. End Sub

Y ahora mi setcursorpos funciona para toda la pantalla y de manera correcta... La verdad no se si existirá una manera de sustituir mi timer con otra api...

Gracias  BlackZeroX

SetTimer, KillTimer

Cobein hizo un modulo de clase para reemplazar al timer comun, usando las apis y subclass.
Pero con las apis solas va a funcionar igual!

saludos
En línea

'-     coco
"Te voy a romper el orto"- Las hemorroides
cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Duda GetCursorPos
« Respuesta #7 en: 29 Junio 2009, 08:14 am »

Podes usar un hook global (WH_MOUSE_LL) para obtener las coordenadas permanentemente y para posicionar la etiqueta correctamente podes usar ScreenToClient.
« Última modificación: 29 Junio 2009, 08:20 am por cobein » En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Re: Duda GetCursorPos
« Respuesta #8 en: 29 Junio 2009, 20:55 pm »

Citar
hook global (WH_MOUSE_LL)
Exactamente cobein a eso me refería gracias. Ya estaré comentando.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
GetCursorPos [C]
Programación C/C++
calk9 8 3,671 Último mensaje 22 Octubre 2011, 19:57 pm
por calk9
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines