Visual Basic para Aplicaciones - Efecto en Objeto Label

Life is soft - evento anual de software empresarial
 
Vista:

Efecto en Objeto Label

Publicado por Titin (9 intervenciones) el 11/01/2008 00:56:54
Amigos, a ver quien me puede ayudar. Estoy trabajando en VBA, el editor de Visual que tiene el Office2003, estoy usando Labels para dar efecto de uso de botones. Al cargar el formulario presento un Label haciendo las veces de barra de herramientas, con varias imágenes de "botones" ( pues tambien son labels con el efecto Flat ) y he logrado que al presionar con el Mouse ( su hunde el "botón" ) y al levantar el Botón del Mouse ( regresa a su posición inicial ), un poco que trato de imitar los efectos que se aprecian en en el Internet Explorer cuando colocas el Mouse sobre uno de los botones de la barra de herramientas.
Lo que no logro hacer es justamente eso, que al colocar el mouse sobre el botón cree un efecto de fmSpecialEffectRaised o fmSpecialEffectBump, etc, o sea que se vea visualmente que el Mouse está sobre la etiqueta.
¿Alguien me puede dar una ayuda?
Desde ya muchas 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:Efecto en Objeto Label

Publicado por JuanC (243 intervenciones) el 11/01/2008 01:08:06
veamos si esto te da una idea...

Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Not InObject(X, Y, Label1) Then
Label1.SpecialEffect = fmSpecialEffectRaised
Else
Label1.SpecialEffect = fmSpecialEffectFlat
End If
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Label1.SpecialEffect = fmSpecialEffectFlat
End Sub

'//En un módulo
Option Explicit

Public Function InObject(ByVal X As Single, ByVal Y As Single, Obj As Object) As Boolean
On Error Resume Next
With Obj
If X > .Left And X < (.Left + .Width) And _
Y > .Top And Y < (.Top + .Height) Then
InObject = True
Else
InObject = False
End If
End With
End Function

Saludos desde Baires, JuanC
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:Efecto en Objeto Label

Publicado por Titin (9 intervenciones) el 11/01/2008 21:21:45
Muchas gracias JuanC, es justo lo que deseaba lograr.
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