Autor Tema: Aplicar Transparencia solo a una region del form  (Leído 3791 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
Aplicar Transparencia solo a una region del form
« en: Mayo 25, 2010, 07:38:28 pm »
Bueno... la pregunta creo que es lo bastante descriptiva.

Si por ejemplo yo quiero que la mitad del form sea transperntes (ojo!, no invisible ), como podria realizarlo. es algo que no puedo hacer con setwindowlong ya que me hace transparente todo el form. mi idea es hacer degradado de transparencia. una opcion sin lugar a dudas hubiera sido la clase de cobein para widget pero. lo que yo quiero es que sea totalmente manipulada por el usuario, y obviamente no voy andar creando png en png.
gracias
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:Aplicar Transparencia solo a una region del form
« Respuesta #1 en: Mayo 25, 2010, 07:55:34 pm »
Hola lo que pedis es algo complicado, no se puede hacer de una forma natural o digamos con alguna api en especial, si pones una imagen de lo que queres hacer puede que se me ocurra pueda hacerce algo parecido, osea es casi como utilizando la clase widget pero no con imagenes png, sino utilizando metodos graficos de gdi plus regiones y subclasificando.

pregunta esa region tendria controles ?

Saludos.


xmbeat

  • Kilobyte
  • **
  • Mensajes: 84
  • Reputación: +3/-1
  • la vida no tiene sentido sin Dios
    • Ver Perfil
Re:Aplicar Transparencia solo a una region del form
« Respuesta #2 en: Mayo 25, 2010, 08:12:25 pm »
si tendria controles.
digamos que lo que quiero hacer es un formulario con degradado transparente.
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:Aplicar Transparencia solo a una region del form
« Respuesta #3 en: Mayo 26, 2010, 02:31:30 am »
hola mira esto es lo que pude hacer, es como te habia comentado antes, de todas formas es algo rebuscado porque no creo que se pueda como deveria. lo que hace es por el formulario transparente utilizando SetLayeredWindowAttributes con un color magenta, depues como fondo pongo un picture con un DIB degradado y este lo aplica con UpdateLayeredWindow.
como veras no va aver un evento click del form, (no es que no se pueda , solo que abria que implementarlo.)



http://www.leandroascierto.com.ar/archivos/FormularioSemiTransparente.zip

no lo he testeado mucho, pero por lo que vi hay un crash a cada tanto, no se si es por el subclass o el gdi , despues me fijo bien.

Saludos.

xmbeat

  • Kilobyte
  • **
  • Mensajes: 84
  • Reputación: +3/-1
  • la vida no tiene sentido sin Dios
    • Ver Perfil
Re:Aplicar Transparencia solo a una region del form
« Respuesta #4 en: Mayo 26, 2010, 06:42:34 pm »
si se ve como en la imagen, es lo que busco gracias!!
El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir. -Einstein