[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Как сделать форму прозрачной
DemoN777Дата: Понедельник, 21.05.2012, 16:17 | Сообщение # 1
Администратор
Группа: Администраторы
Сообщений: 11
Репутация: 11
Статус: Offline
пиши модуль:

'API функции
'Функция определяет стиль окна
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

'Процедура

'hWnd - манипулятор окна, Layered - степень прозрачности от 0 до 255
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

При запуске формы (Form_Load):

SetTransparent Me.hWnd, x
где x от 1 до 255

И будет тебе счастье....
Автор исходника Dusk
 
ShoopDaWoopДата: Пятница, 19.07.2013, 00:16 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
Это на каком языке программирования?
 
DemoN777Дата: Пятница, 26.07.2013, 13:55 | Сообщение # 3
Администратор
Группа: Администраторы
Сообщений: 11
Репутация: 11
Статус: Offline
Visual Basic
 
  • Страница 1 из 1
  • 1
Поиск: