aInteresante! | Contenido para todo el mundo.
Bienvenido a nuestro foro!

Te invitamos a formar parte de nuestro gran equipo.
Puedes registrarte y empezar a crear temas y a hacer post.
Lo único que necesitas es:

* Tiempo para hacerlo
* Voluntad para querer ayudar a los demás

También puedes visitar nuestro blog:
http://ainteresante.wordpress.com
Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Conectarse

Recuperar mi contraseña

Visitas!

Dark Help
Seguinos en Facebook/Hazte fan:
Descargas:

AresGalaxy2.2.4

sb0t 5.27 (recomendado)
Extras

=><=
Webs Amigas
Visita nuestro blog:

Redondear esquinas de un Formulario

Ver el tema anterior Ver el tema siguiente Ir abajo

Redondear esquinas de un Formulario

Mensaje por Elmer Homero el Lun Mar 29, 2010 8:01 am

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.
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 
avatar
Elmer Homero
Admin

Mensajes : 87
Puntos : 253
Reputación : 2
Fecha de inscripción : 12/01/2010

Ver perfil de usuario http://ainteresante.forosactivos.net

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.