C/Visual C - Eventos del raton

 
Vista:

Eventos del raton

Publicado por Edu (5 intervenciones) el 07/03/2006 14:09:54
Tengo una aplicacion con un CMDFlexGrid (una regilla al estilo excel), quiero que cuando sobre ella pulse con los botones del raton haga algo. El problema esta en que para este control los eventos del raton son click, dblclick, mousedown...es decir no especifica si es para el boton derecho o el izquierdo del raton. ¿Como se puede detectar en el evento OnClick que boton he pulsado del raton (derecho o izquierdo)?
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:Eventos del raton

Publicado por kaned (2 intervenciones) el 07/03/2006 19:02:13
Es muy facil esto se puede solucionar con las funciones API's del ratón para que devuelva información. en un momento te las digo
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

RE:Eventos del raton

Publicado por Edu (5 intervenciones) el 07/03/2006 23:51:59
Weno...me voy a responder a mi mismo, pues ya encontre la solución después de dar unas cuantas vueltas, para que la gente que tuviera el mismo problema que yo sepa resolverlo.
Como dije antes, uno de los eventos de la rejilla flexible (CMSFlexGrid) es el OnMouseDown, pongo la cabecera entera:

OnMouseDownMsflexgrid1(short Button, short Shift, long x, long y)

Pues bien, el primer parámetro, Button, es el botón del mouse que hemos pulsado, entonces:
- si Button vale 1, es que hemos pulsado el botón izquierdo
- si Button vale 2, es que hemos pulsado el botón derecho
- si Button vale 4, es que hemos pulsado el botón central

Sabiendo esto, ya lo tenemos solucionado, los demás parámetros se pueden intuir para que valen.

Venga, ta luegor
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

RE:Eventos del raton

Publicado por nelek (818 intervenciones) el 13/03/2006 11:01:44
Esa función te la has creado tú, no? No especificas en que programas, pero si es en VC++ los eventos ya estan diferenciados en:

Boton presionado, boton soltado, doble click (ya sea izdo o dcho)
WM_LBUTTONDOWN,WM_LBUTTONUP,WM_LBUTTONDBLCLK...

Rueda del mouse
WM_MOUSEWHEEL

Movimiento del raton
WM_MOUSEMOVE

Todos están definidos en la clase View, lo unico que tendrías que hacer es una vez se detecta un evento de ratón, comprobar donde lo estás haciendo.
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

RE:Eventos del raton

Publicado por Edu (5 intervenciones) el 13/03/2006 16:00:41
Como dije antes, ya solucione el problema a las mil maravillas. Te cuento:

1º. Ese evento (o función, como lo quieras llamar) no lo he creado yo, viene entre otros, y se puede disponer de él en los controles CMSFlexGrid, que es una rejilla flexible al estilo excel.

2º. No confundas los mensajes que manda el ratón con los eventos, lo que dices ahi son mensajes que manda el ratón.

3º. Para cada control no existen los mismos eventos, es decir, en un control CButton hay eventos que no estan disponibles en un CEdit (cuadro de edición), por ejemplo.

4º. El programa que uso es Visual C++ 6, lo mismo el que usas tú puede ser Dev-C++, no lo se.

De todas formas, gracias por intentar ayudarme, aunque ya lo resolvi, asi mismo espero que esto tambien te sirva para aclararte en algunos conceptos.

Venga, un saludo.
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