Autor Tema: Dibujar Sombra a Formularios si borde  (Leído 4076 veces)

0 Usuarios y 1 Visitante están viendo este tema.

xmbeat

  • Kilobyte
  • **
  • Mensajes: 84
  • Reputación: +3/-1
  • la vida no tiene sentido sin Dios
    • Ver Perfil
Dibujar Sombra a Formularios si borde
« en: Diciembre 20, 2009, 11:09:03 pm »
Me he descargado el Proyecto de Leandro de El CARTEL NOTIFICATORIO
pero se me ocurrió ponerles sombra a los formularios, como lo hace el MSN, si alguien sabe del las API para usar porfa Respondame
« última modificación: Diciembre 20, 2009, 11:16:21 pm por xmbeat »
El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Dibujar Sombra a Formularios si borde
« Respuesta #1 en: Diciembre 21, 2009, 01:00:38 am »
Hola lo que vos queres hacer no se puede hacer con solo una api, la que utiliza el Msn es una ventana de tipo como los Widget osea que el formulario toma la apariencia de una imagen PNG, si queres hacer algo asi vas a tener que renegar un poco.

una fomra de poner una pequeña sombra a los formularios con apis es asi
Código: [Seleccionar]
Option Explicit

Private Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal lngHandler As Long, ByVal lngIndex As Long) As Long
Private Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal lngHandler As Long, ByVal lngIndex As Long, ByVal lngNewClassLong As Long) As Long
Private Const CS_DROPSHADOW     As Long = &H20000
Private Const GCL_STYLE         As Long = -26

Private Sub Form_Load()
    Call SetClassLong(Me.hWnd, GCL_STYLE, GetClassLong(Me.hWnd, GCL_STYLE) Or CS_DROPSHADOW)
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Me.Visible = False
    Call SetClassLong(Me.hWnd, GCL_STYLE, GetClassLong(Me.hWnd, GCL_STYLE) And Not CS_DROPSHADOW)
End Sub
pero no te lo recomiendaria para el cartel notificatorio ya que no se va a distinguir y se puede  ralentar  la aplicacion.

fijate mejor en este ejemplo te puede ser mas util

saludos.
Saludos.