СообЧа > База Знаний > Программирование > Visual Basic > Формы и элементы управления

Вопрос

Как можно форму прозрачной сделать, т.е. вместо цвета, допустим, черного, была прозрачная область.

Ответ

Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
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
Private Sub Form_Load()
 'KPD-Team 2000
  'URL: http://www.allapi.net/
  'E-Mail: KPDTeam@Allapi.net
  Dim Ret As Long
  'Set the window style to 'Layered'
  Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
  Ret = Ret Or WS_EX_LAYERED
  SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
  'Set the opacity of the layered window to 128
  SetLayeredWindowAttributes Me.hWnd, 0, 128, LWA_ALPHA
End Sub

Но это только для NT/2k/ХР

Хвастунов Михаил



Copyright © 2000-2004 Сообщество Чайников
Контактная информация