Как сделать окно прозрачным

Ответы на вопросы, чаще всего задаваемые в форумах VBStreets. Для тех, кому лень искать.
hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Как сделать окно прозрачным

Сообщение hCORe » 28.12.2004 (Вт) 13:49

Этот простой код поможет вам сделать любую форму прозрачной:
Код: Выделить всё
'любимая опция
Option Explicit

'функции API
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

'константы API
Private Const LWA_COLORKEY = &H1
Private Const LWA_ALPHA = &H2
Private Const GWL_EXSTYLE = (-20)

Private Const WS_EX_LAYERED = &H80000

'объявления программы
Private Const BLEND = 180 'значение прозрачности

Private Sub Form_Load()
Dim rc As Long
    'установить стиль окна
    rc = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
    If Not (rc Or WS_EX_LAYERED) Then
        rc = rc Or WS_EX_LAYERED
    End If
    SetWindowLong Me.hwnd, GWL_EXSTYLE, rc
    'установить прозрачность
    SetLayeredWindowAttributes Me.hwnd, 0, _
    BLEND, LWA_ALPHA
End Sub
Моду создают модоки, а распространяют модозвоны.

Вернуться в Популярные вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList