Redondear esquinas de formularios en access
Bueno lo que yo deseo lograr es que mi formulario tenga todas las esquinas redondeadas .Se que se puede hacer, porque buscando en Internet encontré un archivo que muestra un formulario elíptico que adjuntare a esta pregunta.
Quiero que el formulario tenga la siguiente forma
La cuestión es que revise el modulo del ejemplo que descargue y por mi falta de conocimiento no he logrado dar con las lineas en donde se dan los parámetros para darle la forma al formulario
Encontré ademas en Internet los siguientes códigos que probé pero no me funcionaron no se si por mi mala implementan o porque el código es netamente Vb 6.
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
Este código de lleno no hace nada solo errores
También encontré este con código muy simple pero según lo que leí de donde lo extraje funciona perfecto
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
Este código me arroja el error en la carga del formulario donde dice Me.Height
Bueno finalmente les dejo el archivo que encontré que el formulario tiene forma elíptica y ademas por lo que note ocupa los mismos criterios en el código comparado con los anteriores que expuse.
Archivo https://drive.google.com/open?id=1bcm2nqImvV_SOBK2irTWutDrgSU5sfMx
Para ver el código deben abrirlo utilizando la combinación de teclas shift +enter mantenido