formularios transparentes

yordan
30 de Junio del 2004
Hola a todos, estoy en una aplicación educativa y necesito
que algunos formularios no tengan forma rectangular, nada que me quedan más bonitos de esa forma, me han dicho que con formularios transparentes se resuelve, pero probé este codigo
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Sub Form_Load()
Dim Resp As Long
Resp = SetWindowLong(Me.hwnd, -20, &H20&)
Form1.Refresh
End Sub
y me hace transparentes también todos los controles y yo
quiero que solo sea transparente el formulario para dejar un fondo no rectangular con el resto de lo controles.
Ayuda por favor.

jhon
30 de Junio del 2004
Esta son las declaraciones para un form eliptico:
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, _
ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, _
ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Esto va en el load del form:

Private Sub Form_Load()
Dim Xs As Long, Ys As Long

'circular:
Xs = Me.Width / Screen.TwipsPerPixelX
Ys = Me.Height / Screen.TwipsPerPixelY
SetWindowRgn hWnd, CreateEllipticRgn(10, 10, Xs, Ys), True
End Sub

Saludos
jhon