Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: e500 en 1 Septiembre 2010, 22:50 pm



Título: [SOLUCIONADO] Puntas Redondeadas en un form
Publicado por: e500 en 1 Septiembre 2010, 22:50 pm
Hola amigos del foro, les paso a consultar, si existe alguna forma de hacer un form con las esquinas redondeadas, osea q no termine en punta.

Mi segunda pregunta es, hay forma de hacer un form transparecte con un 30% de trasnparencia y q por ejemplo el textbox q esta en ese form no sea transparente.

Espero aver sido claro..

Saludos y espero de su ayuda.  :rolleyes:


Título: Re: Puntas Redondeadas en un form
Publicado por: Hadess_inf en 1 Septiembre 2010, 22:53 pm
En VB6 hay TransparencyKey ?


Título: Re: Puntas Redondeadas en un form
Publicado por: e500 en 1 Septiembre 2010, 22:59 pm
En VB6 hay TransparencyKey ?

Si he visto en proyectos de LeandroA pero no logro entenderlos... y las puntas redondeadas tmb lo he visto... por eso pido ayuda aver si alguien puede ayudarme con este problemita

Saludos


Título: Re: Puntas Redondeadas en un form
Publicado por: Dessa en 1 Septiembre 2010, 23:00 pm
Código:

'Fuente Recursosvb (no encuentro el link)

Option Explicit

' Crea la región
Private Declare Function CreateRoundRectRgn Lib "gdi32" ( _
    ByVal X1 As Long, _
    ByVal Y1 As Long, _
    ByVal X2 As Long, _
    ByVal Y2 As Long, _
    ByVal X3 As Long, _
    ByVal Y3 As Long) As Long

'Establece la región
Private Declare Function SetWindowRgn Lib "user32" ( _
    ByVal hwnd As Long, _
    ByVal hRgn As Long, _
    ByVal bRedraw As Boolean) As Long


Private Sub Redondear_Formulario(El_Form As Form, Radio As Long)


Dim Region As Long
Dim ret As Long
Dim Ancho As Long
Dim Alto As Long

'Obtenemos el ancho y alto de la region del Form
Ancho = El_Form.Width / Screen.TwipsPerPixelX
Alto = El_Form.Height / Screen.TwipsPerPixelY

'Le pasamos el ancho alto del formualrio y el valor de _
 redondeo es decir el radio

Region = CreateRoundRectRgn(0, 0, Ancho, Alto, Radio, Radio)

' Aplica la región al formulario
ret = SetWindowRgn(El_Form.hwnd, Region, True)

End Sub


Private Sub Form_Load()
  
  Call Redondear_Formulario(Me, 10)

End Sub





Título: Re: Puntas Redondeadas en un form
Publicado por: Dessa en 1 Septiembre 2010, 23:05 pm

Mi segunda pregunta es, hay forma de hacer un form transparecte con un 30% de trasnparencia y q por ejemplo el textbox q esta en ese form no sea transparente.


Fijate si esto puede servir,

http://foro.elhacker.net/programacion_vb/como_hacer_esto_medio_transparente-t256170.0.html;msg1242108#msg1242108 (http://foro.elhacker.net/programacion_vb/como_hacer_esto_medio_transparente-t256170.0.html;msg1242108#msg1242108)


S2


Título: Re: Puntas Redondeadas en un form
Publicado por: e500 en 2 Septiembre 2010, 04:48 am
Muchas Gracias a TODOS :D

Saludos


Título: Re: [SOLUCIONADO] Puntas Redondeadas en un form
Publicado por: Dessa en 3 Septiembre 2010, 02:27 am
[SNIPPET]  "Puntas Redondeadas en un form"

Código:

Option Explicit

Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Private Sub Form_Load()
  Call SetWindowRgn(Me.hwnd, CreateRoundRectRgn(0, 0, Me.Width / 15, Me.Height / 15, 10, 10), True)
End Sub


Saludos





Título: Re: [SOLUCIONADO] Puntas Redondeadas en un form
Publicado por: e500 en 4 Septiembre 2010, 01:40 am
[SNIPPET]  "Puntas Redondeadas en un form"

Código:

Option Explicit

Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Private Sub Form_Load()
  Call SetWindowRgn(Me.hwnd, CreateRoundRectRgn(0, 0, Me.Width / 15, Me.Height / 15, 10, 10), True)
End Sub


Saludos


Barbaro, code cortito y efectivo, estaría barbaro q exita algo así pero para la transparencia del form, y no de los controles...

Saludos :) y muchas gracias a todos


Título: Re: [SOLUCIONADO] Puntas Redondeadas en un form
Publicado por: ranslsad en 20 Septiembre 2010, 11:57 am
Aca te dejo un ejemplo de transparencia del form:

http://www.filefront.com/17305063/Form Transparente.rar

Y si queres transparencia del form pero no de los controles lo que tengo es un codigo per ohace dasaparecer el form y te deja visible los controles... Si lo queres avisa y te lo pongo...

Espero que te sirva...

Salu2

Ranslsad


Título: Re: [SOLUCIONADO] Puntas Redondeadas en un form
Publicado por: e500 en 20 Septiembre 2010, 17:31 pm
Aca te dejo un ejemplo de transparencia del form:

http://www.filefront.com/17305063/Form Transparente.rar

Y si queres transparencia del form pero no de los controles lo que tengo es un codigo per ohace dasaparecer el form y te deja visible los controles... Si lo queres avisa y te lo pongo...

Espero que te sirva...

Salu2

Ranslsad

Gracias  :D

Saludos


Título: Re: [SOLUCIONADO] Puntas Redondeadas en un form
Publicado por: BlackZeroX en 22 Septiembre 2010, 06:37 am
[SNIPPET]  "Puntas Redondeadas en un form"

Código:

Option Explicit

Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Private Sub Form_Load()
  Call SetWindowRgn(Me.hwnd, CreateRoundRectRgn(0, 0, Me.Width / 15, Me.Height / 15, 10, 10), True)
End Sub


Saludos



Cabe decir que el 15 es lo que equivale a un Twin es decir

15 Twin = 1 pixel

Por lo dicho se debera de espesificar esto, o tomar las dimensiones con GetWindowRect... para evitar errores

Otra cosa

Si, se llegase a cambiar la resolución la clase Screen NO ACTUALIZA los valores Width y Height  del mismo, habra que usar APIS!¡.

Dulces Lunas!¡.


Título: Re: [SOLUCIONADO] Puntas Redondeadas en un form
Publicado por: Dessa en 22 Septiembre 2010, 12:41 pm
Particularmente uso esto en para formularios simples, sin Bordes o con borde transparente ,  vale la aclaracion de  BlackZeroX


http://www.megaupload.com/?d=819VEP1W (http://www.megaupload.com/?d=819VEP1W)


(http://img139.imageshack.us/img139/9827/forms.jpg)
















Título: Re: [SOLUCIONADO] Puntas Redondeadas en un form
Publicado por: e500 en 22 Septiembre 2010, 19:56 pm
@Dessa te pasaste!!! gracias es eso lo que quería!!!!

Saludos


Título: Re: [SOLUCIONADO] Puntas Redondeadas en un form
Publicado por: seba123neo en 26 Septiembre 2010, 22:38 pm

Cabe decir que el 15 es lo que equivale a un Twin es decir

15 Twin = 1 pixel


aclaro que la medida es Twip y no Twin (gemelo en ingles)


Twip (http://es.wikipedia.org/wiki/Twip)