 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Sara Invitado
|
Publicado: Mie 28 Ago, 2002 7:55 am Asunto: SetCursorPos o similar |
|
|
Quiero poner el ratón en una posición concreta de un componente.
SetCursorPos lo hace, pero respecto al origen de la pantalla, no del componente, y si le sumo la posición relativa del componente me da problemas.
Conocéis alguna función que permita poner el ratón en alguna posición respecto al origen de un componente?
Gracias. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 28 Ago, 2002 9:09 am Asunto: |
|
|
Puedes usar la función ClientToScreen del API o bien mas sencillo la función miembro de todos los componentes que derivan de TControl del mismo nombre.
Supongamos que tenemos un TButton (Button1) y queremos colocar el cursor en su esquina superior izquierda:
// En este caso las coordenadas 0,0 son relativas al botón
TPoint p = Button1->ClientToScreen( Point(0,0) );
SetCursorPos(p.x, p.y);
y lo mismo usando el API:
POINT p = {0,0};
::ClientToScreen(Button1->Handle, &p);
SetCursorPos(p.x, p.y);
Cambiando en el primer caso el control o en el segundo caso el Handle, estaremos dándole las coordenadas relativas a ese control/handle y nos las devolverá convertidas en relación a pantalla. |
|
| Volver arriba |
|
 |
Galbi Cdt


Registrado: 28 Ago 2002Mensajes: 1
|
Publicado: Sab 31 Ago, 2002 12:49 pm Asunto: Me da problemas |
|
|
Hola, Leo, he leído tu respuesta a la duda de Sara y he tratado de implementarlo en mi aplicación.
Consigo mover el cursor sólo horizontalmente sin variar la posición vertical dentro de un componente, pero de cualquiera de las dos maneras que indicas en la respuesta, la aplicación se ralentiza enormemente y el ratón se mueve a saltos.
La función la quiero usar en el evento OnMouseMove.
Sabes alguna forma de que lo haga bien.
Gracias. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|