20 Октябрь 2008

Как сделать форму полупрозрачной?

Формы |  Таги: ,

Как сделать форму полупрозрачной?

Option Explicit
Private Const LWA_ALPHA = 2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = 524288
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 Transparent(ByVal x As Byte)
    ' x - уровень полупрозрачности. 0 - форма полностью прозрачна. 255 - полупрозрачности нет.
    Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, GetWindowLong(Me.hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED)
    Call SetLayeredWindowAttributes(Me.hWnd, 0, x, LWA_ALPHA)
End Sub

Private Sub Form_Load()
    Call Transparent(180)
End Sub


У нас один комментарий на запись “Как сделать форму полупрозрачной?”

Почему бы Вам не высказать свое мнение! Позвольте нам узнать, что Вы думаете...

  1. 1 On 24.08.2011, Антон said:

    ‘ Можно было и короче

    ‘ Забиваем в модуль:
    Public Declare Function GetWindowLong Lib «user32″ Alias «GetWindowLongA» (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Public Declare Function SetWindowLong Lib «user32″ Alias «SetWindowLongA» (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Declare Function SetLayeredWindowAttributes Lib «user32″ (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

    Public Const LWA_COLORKEY = &H1
    Public Const LWA_ALPHA = &H2
    Public Const GWL_EXSTYLE = (-20)
    Public Const WS_EX_LAYERED = &H80000

    Public Sub SetTransparent(hWnd As Long, Layered As Byte)
    Dim Ret As Long
    Ret = GetWindowLong(hWnd, GWL_EXSTYLE)
    Ret = Ret Or WS_EX_LAYERED
    SetWindowLong hWnd, GWL_EXSTYLE, Ret
    SetLayeredWindowAttributes hWnd, 0, Layered, LWA_ALPHA
    End Sub

    Использование:
    SetTransparent Me.hWnd, 100 ‘ Любое число От 1 до 255

Оставить комментарий

Я не робот.


epson 1410 картриджи и epson stylus photo 1410 санкт-петербург и ленинградская область .