Хм. Что-то здесь есть...
Но... Постой, зачем мне делать форму прозрачной? Это ничего не даст. надо чтобы на месте этого цвета не было формы вообще.
я УЖЕ задумывал, чтобы скопироваь контур контролов в рисунок, а потом по этому рисунку сделать контур формы.
НО Я НЕ ЗНАЮ, КАК
Далее апишками опрозрачнивай форму с помощью получившейся картинки (непомню какими апишками , но есть какая-то, что заданный цвет превращяет в прозрачный).
До этого момента у меня все гоово, кто бы апишку подсказал для того, чтобы форма приняла вид рисунка
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Dim Ret As Long
Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
Ret = Ret Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
SetLayeredWindowAttributes Me.hWnd, CLR_Black, 0, LWA_COLORKEY
Лучше не юзать стандартные цвета типа черного, белого и т.д. В данном случае белый юзается в заголовке формы (надпись), а насколько я помню, на нее прозрачность тоже распространица
даже не надо опрозрачнивать, вот исходник который создает регион по картинке...:
Public Function lGetRegion(pic As PictureBox, lBackColor As Long) As Long
Dim lRgn As Long 'temp region handle
Dim lSkinRgn As Long 'skinned region handle
Dim lStart As Long 'Start position for scan
Dim lX As Long 'pixel coordinate X
Dim lY As Long 'pixel coordinate Y
Dim lHeight As Long 'image size (height)
Dim lWidth As Long 'image size (width)
'create empty region to start
lSkinRgn = CreateRectRgn(0, 0, 0, 0)
'calculate image size in Pixels
lHeight = pic.Height / Screen.TwipsPerPixelY
lWidth = pic.Width / Screen.TwipsPerPixelX
For lX = 0 To lHeight - 1
lY = 0
Do While lY < lWidth
'search Pixel colored with BacgroundColor
Do While lY < lWidth And GetPixel(pic.hDC, lY, lX) = lBackColor
lY = lY + 1
Loop
If lY < lWidth Then
lStart = lY
Do While lY < lWidth And GetPixel(pic.hDC, lY, lX) <> lBackColor
lY = lY + 1
Loop
If lY > lWidth Then lY = lWidth
'we found Pixel, add them to the region
lRgn = CreateRectRgn(lStart, lX, lY, lX + 1)
CombineRgn lSkinRgn, lSkinRgn, lRgn, RGN_OR
'clear temp region object
 eleteObject lRgn
End If
Loop
Next
lGetRegion = lSkinRgn
End Function