Полупрозрачное окно с непрозрачными кнопками и другими элементами управления - VB
Формулировка задачи:
Всем привет! Подскажите кто-нибудь, как сделать полупрозрачное окно с непрозрачными кнопками и другими элементами управления...
Решение задачи: «Полупрозрачное окно с непрозрачными кнопками и другими элементами управления»
textual
Листинг программы
' Form ' - - - - - - ' Command1 – кнопка ' Command2 – кнопка ' Command3 – кнопка ' Command4 – кнопка ' - - - - - - ' Код формы 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 Command1_Click() ' Установить полупрозрачность Dim aStyle As Long Dim Transparent As Byte ' 255 (НЕТ прозрачности) -> полупрозрачность -> 0 (прозрачность) Transparent = 200 ' Получаем расширенный стиль окна (Формы) aStyle = GetWindowLong(Me.hWnd, GWL_EXSTYLE) ' Переменной aStyle добавляем значение WS_EX_LAYERED aStyle = aStyle or WS_EX_LAYERED ' Изменяем расширенный стиль окна (Формы) Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, aStyle) ' Теперь делаем Форму полупрозрачной Call SetLayeredWindowAttributes(Me.hWnd, 0, Transparent, LWA_ALPHA) End Sub Private Sub Command2_Click() ' Установить прозрачный цвет Dim aStyle As Long Dim TransparentColor As Long ' Цвет, который будет полностью прозрачным TransparentColor = vbBlack 'Чёрный ' Если форме уже установлен расширенный стиль WS_EX_LAYERED, ' то следующие 3 строки кода можно не выполнять aStyle = GetWindowLong(Me.hWnd, GWL_EXSTYLE) aStyle = aStyle or WS_EX_LAYERED Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, aStyle) Call SetLayeredWindowAttributes(Me.hWnd, TransparentColor, 0, LWA_COLORKEY) End Sub Private Sub Command3_Click() ' Установить прозрачный цвет и полупрозрачность Dim aStyle As Long Dim TransparentColor As Long Dim Transparent As Byte TransparentColor = RGB(0, 0, 0) Transparent = 200 ' Если форме уже установлен расширенный стиль WS_EX_LAYERED, ' то следующие 3 строки кода можно не выполнять aStyle = GetWindowLong(Me.hWnd, GWL_EXSTYLE) aStyle = aStyle or WS_EX_LAYERED Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, aStyle) Call SetLayeredWindowAttributes(Me.hWnd, TransparentColor, Transparent, LWA_COLORKEY or LWA_ALPHA) End Sub Private Sub Command4_Click() ' Убрать полупрозрачность и полную прозрачность Dim aStyle As Long aStyle = GetWindowLong(Me.hWnd, GWL_EXSTYLE) aStyle = aStyle Xor WS_EX_LAYERED Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, aStyle) End Sub Private Sub Form_Load() Command1.Caption = "Установить полупрозрачность" Command2.Caption = "Установить прозрачный цвет" Command3.Caption = "Установить и ""то"" и ""другое""" Command4.Caption = "Убрать полупрозрачность и полную прозрачность" End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д