C/Visual C - Evento MouseDown en Botones

 
Vista:

Evento MouseDown en Botones

Publicado por Olga (27 intervenciones) el 08/03/2007 17:28:59
Hola
Necesito hacer que cuando el mouse este encima de un boton cambie el cursor de dibujo, esto ultimolo se hacer,pero en eventos del boton unicamente me aparece el click y el dlclick. Alguien sabe como hacerlo!

GRacias
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:Evento MouseDown en Botones

Publicado por fernando.gomez (1603 intervenciones) el 08/03/2007 17:31:31
Er... existen los mensajes WM_LBUTTONDOWN y WM_LBUTTONUP para cuando presionas y dejas de presionar el botón izquierdo del mouse...
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:Evento MouseDown en Botones

Publicado por Olga (27 intervenciones) el 08/03/2007 17:33:54
Ya pero yo quiero que aparezca el icono sin presionar lo botones solo posicionando el mouse encima del boton
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:Evento MouseDown en Botones

Publicado por fernando.gomez (1603 intervenciones) el 08/03/2007 18:27:44
Oops, lo siento. Jeje, ok, el mensaje sería WM_MOUSEMOVE.

Saludos.
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:Evento MouseDown en Botones

Publicado por Nelek (816 intervenciones) el 09/03/2007 07:30:38
Como te ha dicho fernando, el mensaje es WM_MOUSEMOVE, y para saber si estas encima, dos metodos (depende de donde programes).

En VC++ (no se si en c++ tambien), los CRect tienen un metodo que lo soluciona muy sencillo.

BOOL CRect::PtInRect (CPoint point) y se puede usar directamente

void CMyView::OnMouseMove (CPoint point)
{
CRect = rect;
rect.top = cbBoton.y;
rect.left = cbBoton.x;
rect.bottom = cbBoton.y + cbBoton.height;
rect.right = cbBoton.x + cbBoton.width;

if (rect.PtInRect (point))
//Estas dentro. Cambia cursor
else
//estas fuera
}

--------------------
Y hecho a pelo...

void CMyView::OnMouseMove (CPoint point)
{
bool bXOk = false, bool bYOk = false;

if ((point.x > cbBoton.left) && (point.x < cbBoton.right))
bXOk = true;
else
bXOk = false;

if ((point.y > cbBoton.top) && (point.y < cbBoton.bottom))
bYOk = true;
else
bYOk = false;

if (bXOk && bYOk)
//Estas dentro. Cambia cursor
else
//Estas fuera
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:Evento MouseDown en Botones

Publicado por Nacho (2 intervenciones) el 13/03/2007 12:26:15
En C++ Builder existe un método "onMouseOver" para casi cualquier elemento gráfico (incluido botones, claro), que permite hacer cambios de cursor, color, etc. con mucha facilidad.

¿No hay una forma así de sencilla para VC++? Tengo que retomar Vc++ uno de estos días... a ver si me obligo... ;-)
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:Evento MouseDown en Botones

Publicado por Nelek (816 intervenciones) el 13/03/2007 14:53:53
Dentro de la MFC creo que no (aunque no estoy seguro 100%), te tendrias que crear un mensaje propio para ello. Los "Static" (si quieres meter la imagen en tiempo de disenio) no lo tienen, y si lo haces en tiempo de ejecucion con el CDC, CBitmap y el BitBlt no tienes un "objeto" residente con ID fija, asi que tbn lo tienes jodio para buscar sus eventos. De ahi lo de hacerlo en el propio evento "Windows" del "OnMouseMove".

Internamente da igual, ya que en ambos se tiene que comprobar donde esta el raton y, si coincide encima de alguna cosa, hacer lo que se quiera directamente (VC++) o decirle al objeto en si que dispare su mensaje de "raton encima" (BC++)
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:Evento MouseDown en Botones

Publicado por matias (7 intervenciones) el 14/03/2007 00:37:52
TODO ESTA EN www.code-visual.blogspot.com saludos
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