Redondear esquinas de un Formulario
Página 1 de 1.
Redondear esquinas de un Formulario
Ejemplo que usa las funciones del Api SetWindowRgn y CreateRoundRectRgn para aplicar un borde redondeado a las esquinas de un formulario o ventana
En el código fuente hay una función llamada Redondear_Formulario.
En el primer parámetro de la función hay que pasarle como parámetro, el formulario que queremos aplicar el esquinado, y en el otro parámetro el valor del radio, mientras mas grande sea el valor que le pasemos, el formulario mas redondo será.
Por ejemplo para usarlo con el form actual con un valor de 150.
Nota: Se debe quitar los bordes al formulario mediante la propiedad BorderStyle con el valor 0.
Otro detalle a tener en cuenta es que, si le sacamos la barra de titulo, ya no podemos mover el formulario. Esto lo podemos solucionar con la función Api RelaseCapture y SendMessage para poder hacer un Drag o arrastre sobre el mismo. Este ejemplo para arrastrar controles y formularios mediante el Api lo podés ver en la página siguiente a esta.
Codigo fuente en el Formulario:
En el código fuente hay una función llamada Redondear_Formulario.
En el primer parámetro de la función hay que pasarle como parámetro, el formulario que queremos aplicar el esquinado, y en el otro parámetro el valor del radio, mientras mas grande sea el valor que le pasemos, el formulario mas redondo será.
Por ejemplo para usarlo con el form actual con un valor de 150.
- Código:
Call Redondear_Formulario(Me, 150)
Nota: Se debe quitar los bordes al formulario mediante la propiedad BorderStyle con el valor 0.
Otro detalle a tener en cuenta es que, si le sacamos la barra de titulo, ya no podemos mover el formulario. Esto lo podemos solucionar con la función Api RelaseCapture y SendMessage para poder hacer un Drag o arrastre sobre el mismo. Este ejemplo para arrastrar controles y formularios mediante el Api lo podés ver en la página siguiente a esta.
Codigo fuente en el Formulario:
- Código:
Option Explicit
'Declaraciones de funciones Api
' 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
Dim old_Scale As Integer
' guardar la escala
old_Scale = El_Form.ScaleMode
' cambiar la escala a pixeles
El_Form.ScaleMode = vbPixels
'Obtenemos el ancho y alto de la region del Form
Ancho = El_Form.ScaleWidth
Alto = El_Form.ScaleHeight
'Pasar 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)
' restaurar la escala
El_Form.ScaleMode = old_Scale
End Sub
Private Sub Form_Load()
MsgBox "Quitarle el borde al formulario: Border Style en 0", vbInformation
' Le pasamos el formulario y el radio de redondeo
Call Redondear_Formulario(Me, 100)
End Sub
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|
Sáb Feb 09, 2019 11:48 am por Elmer Homero
» Guía 2015 | Cómo subir de grupo, ganar más BAPs y dinero creando campañas en PaidVerts
Dom Mayo 31, 2015 4:25 pm por Elmer Homero
» 2015| Cómo reducir el peso de tus imágenes sin perder la calidad | SIN PROGRAMAS |
Vie Mayo 15, 2015 5:09 pm por Elmer Homero
» [Guía 2015]Como ganar dinero viendo anuncios en internet con PaidVerts, ¿Qué es y cómo funciona?
Miér Abr 15, 2015 5:31 pm por Elmer Homero
» Las mejores páginas PTC para trabajar y ganar dinero.
Miér Abr 15, 2015 5:27 pm por Elmer Homero
» Descargar sb0t 5.27 chat server para Ares - nuevo 2015 -
Miér Abr 15, 2015 4:25 pm por Elmer Homero
» sb0t 4.28[Chat Server
Miér Abr 15, 2015 4:22 pm por Elmer Homero
» Pack Themes(Temas) Premium para tus foros de SMF (2015)
Miér Abr 15, 2015 4:01 pm por Elmer Homero
» CS 1.6 Problema con Lista de server (Server List) [Solucion]
Miér Abr 15, 2015 3:45 pm por Elmer Homero
» Richard Burns Rally (simulacion de rally)- descargar
Sáb Dic 29, 2012 10:11 am por eric97avila