La Web del Programador: Comunidad de Programadores
 
    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)