Pregunta: | 1835 - COMO HACER UN FORM DE FORMA "IRREGULAR" |
Autor: | Real Curly |
Hola!! Kisiera saber si se puede hacer ke un formularios de VB tenga una forma Irregualar, algo asi como el SONIC (reproductor de MP3) u otros ke e visto, ya ke me seria muy util. Si alguien sabe como hacerlo, desde ya muchas gracias.. Real Curly |
Respuesta: | E.Magdiel Reyes hernandez |
te comento que para hacer formularios con formas predeterminadas como los reproductores de audio y video se tiene que usar el control Skin, ese control viene con un programa que se llama active skin el cual te permite en tiempo de diseño hacer el diseño grafico de tu formulario
cualquier cosa en la que te pueda orientar escribe a [email protected] |
Respuesta: | Luis Perez |
No se si ya creaste el formulario transparente, pero me intereso este tema y buscando por ahy encontre un ejemplo que sin tanto codigo hace el formulario transparente.
Este se llama transpar.ocx Solo tienes que posesionarlo en el formulario y lo vuelve transparente genial no! Te envio dos formas de hacer trasnparentes un formulario CAL21 usa un oxc que solo se inserta en el form y lo vuelve transparente, pero se complica para poder ver un gif o sea darle una forma redondeada, solo lo vuelve transparente. es para los flojitos. CAL26 Usa un Diseñador de Usuario, este permite no usar un oxc, esto hace el sistema mas autonomo y permite insertar gif. con fondo transparente, claro hay que implementarlo en la aplicacion pero es mucho mejor .. espero sirvan |
Respuesta: | Federico Ruete |
Hola, lo que yo encontre por algun lado fue lo siguiente. ´----------------------------------- Option Explicit ´ Declares Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode 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 Declare Function GetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long) As Long ´ Types Public Type POINTAPI X As Long Y As Long End Type ´ Storage Private XYDescriptor() As POINTAPI Private Filler As Long ´ Constants Private Const ALTERNATE = 1 Private Const WINDING = 2 Private hRgn, res As Long Public Sub GoRegion(ByRef Obj As PictureBox, XYDescriptor() As POINTAPI, Points As Integer) ´Obj.ScaleMode = vbPixels Filler = ALTERNATE ´res = GetWindowRgn(hWnd, hRgn) hRgn = CreatePolygonRgn(XYDescriptor(0), Points, Filler) res = SetWindowRgn(Obj.hWnd, hRgn, True) Obj.Visible = True End Sub ´------------------------- a esto lo e modificado ya bastante del codigo original. tenes que llenar la matris con los puntos XYDescriptor(n).X, XYDescriptor(n).Y e informarle a la fn cual es el valor final con "Points". Espero, te sirva. Yo con esto ya simule a Sonique. Saludos Cordiales |
Respuesta: | Juan David Jaramillo |
Te recomiendo que elabores un muy buen diseño grafico y que vuelvas transparente el formulario de Visual Basic, y la parte grafica pegarla en los controles PictureBox, de esta manera no tendras una aplicacion estandar de windows ademas vas a salir del estandar cuadrado que poseen todas las aplicaciones y tener una aplicacion redonda, ovalada, etc. Este es el código: Para 16 bits Private Declare Function SetWindowLong Lib "User" (BVal hWnd As Integer, ByVal nIndex As Integer, ByVal dwNewLong As Long) As Long Para 32 bits Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Const WS_EX_TRANSPARENT = &H20& Const GWL_EXSTYLE = (-20) En el formulario cuyo fondo deseas que sea transparente debes incluir en el Form_Load lo siguiente: Dim ret As Long ret = SetWindowLong (Me.hWnd, GWL_EXSTYLE, WS_EX_TRANSPARENT) |