Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: capitan_kirk en 01 de Enero de 1970, 01:00:00 AM

Título: a vueltas con el raton y directinput
Publicado por: capitan_kirk en 01 de Enero de 1970, 01:00:00 AM
                                Bueno , sigo con mis problemas con el ratón , a ver si alguien sabe como se hace esto.

Tengo una aplicación que estoy haciendo que es en modo ventana con directx y lo que intento es capturar la posición del raton cuando pasa por encima. El problema está en que al capturar el dispositivo raton desde la aplicacion con directinput me resetea su posición a las coordenadas 0,0 de la ventana que no se corresponede con la posición real del raton en pantalla. Por eso necesito algun método para conseguir las coordenadas absolutas en pantalla del ratón.

Es de vida o muerte , sinó el jefe me empapela!!!!!                                
Título: a vueltas con el raton y directinput
Publicado por: mICrO en 01 de Enero de 1970, 01:00:00 AM
                                Mirate estas funcions del api

ScreenToClient
http://msdn.microsoft.com/library/default....rdspac_5oxg.asp


ClientToScreen
http://msdn.microsoft.com/library/default....rdspac_2tny.asp

mICrO

Citar
El 2002-05-30 09:22, capitan_kirk escribió:
Bueno , sigo con mis problemas con el ratón , a ver si alguien sabe como se hace esto.

Tengo una aplicación que estoy haciendo que es en modo ventana con directx y lo que intento es capturar la posición del raton cuando pasa por encima. El problema está en que al capturar el dispositivo raton desde la aplicacion con directinput me resetea su posición a las coordenadas 0,0 de la ventana que no se corresponede con la posición real del raton en pantalla. Por eso necesito algun método para conseguir las coordenadas absolutas en pantalla del ratón.

Es de vida o muerte , sinó el jefe me empapela!!!!!
Título: a vueltas con el raton y directinput
Publicado por: capitan_kirk en 01 de Enero de 1970, 01:00:00 AM
                                Efectivamente las funciones que comentas son muy utiles , pero necesito una para saber las coordenadas absolutas del ratón, es decir que me de las coordenadas de este tanto si está dentro o fuera de mi ventana , y en caso de que esté dentro de mi ventana , entonces ya no hay problema.

si alguien tiene la respuesta a esto , junto con las funciones que comenta MiCro , me habeis hecho padre!!!!                                
Título: a vueltas con el raton y directinput
Publicado por: mICrO en 01 de Enero de 1970, 01:00:00 AM
                                Para hacer eso tienes que "capturar" el raton, asi cuando se mueva aunque no este en tu ventana tendras esa informacion.

Un ejemplo de esto, es coger photoshop y abrirlo (sin maximizar), seleccionar seleccion y luego pinchar y mover el raton por fuera de la ventana del photoshop, veras como sigue capturado.

Para eso hay 2 funciones del api
SetCapture
http://msdn.microsoft.com/library/default....usinpt_4fol.asp

ReleaseCapture
http://msdn.microsoft.com/library/default....usinpt_7asl.asp

Un codigo habitual para esto, seria algo asi.....

   void CGestorImagenesFrame::OnLButtonDown(UINT nFlags, CPoint point)
      {
      //de esta forma se puede mover el area de seleccion
      //incluso aunque el cursor este fuera de la ventana
      //explorer like
      SetCapture();
................
}

   void CGestorImagenesFrame::OnLButtonUp(UINT nFlags, CPoint point)
      {
      //ya no necesitamos capturar el raton
      ReleaseCapture();
}

mICrO
Citar
El 2002-05-30 12:17, capitan_kirk escribió:
Efectivamente las funciones que comentas son muy utiles , pero necesito una para saber las coordenadas absolutas del ratón, es decir que me de las coordenadas de este tanto si está dentro o fuera de mi ventana , y en caso de que esté dentro de mi ventana , entonces ya no hay problema.

si alguien tiene la respuesta a esto , junto con las funciones que comenta MiCro , me habeis hecho padre!!!!
Título: a vueltas con el raton y directinput
Publicado por: sés en 01 de Enero de 1970, 01:00:00 AM
                                Mira GetCursorPos(), creo que era esa ^_^
Te da la posición del ratón.                                
Título: a vueltas con el raton y directinput
Publicado por: MChiz en 01 de Enero de 1970, 01:00:00 AM
                                Hola!
SetCapture y ReleaseCapture funcionan a la perfeccion y son muy sencillas de utilizar.
Un saludo!!

< MChiz >