Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Прозрачность окна и кнопки (http://forum.oszone.net/showthread.php?t=285132)

Мутаген 15-07-2014 22:43 2377021

Прозрачность окна и кнопки
 
Создаем проект Visual Basic, на форму кидаем кнопку и пишем код в эту форму:

PHP код:

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As LongByVal nIndex As Long) As Long
Private 
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As LongByVal nIndex As LongByVal dwNewLong As Long) As Long
Private 
Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As LongByVal crKey As LongByVal bAlpha As ByteByVal dwFlags As Long) As Long

Private Sub Form_Load
()
    
Dim Ret As Long
    Ret 
GetWindowLong(hwndGWL_EXSTYLE)
    
Ret Ret Or &H80000
    SetWindowLong hwnd
, (-20), Ret
    
    SetLayeredWindowAttributes hwnd
01282
End Sub 

И наша форма становится прозразна на 50 процентов. Теперь немножко переделываем код для кнопки:

PHP код:

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As LongByVal nIndex As Long) As Long
Private 
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As LongByVal nIndex As LongByVal dwNewLong As Long) As Long
Private 
Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As LongByVal crKey As LongByVal bAlpha As ByteByVal dwFlags As Long) As Long

Private Sub Form_Load
()
    
Dim Ret As Long
    Ret 
GetWindowLong(Command1.hwndGWL_EXSTYLE)
    
Ret Ret Or &H80000
    SetWindowLong Command1
.hwnd, (-20), Ret
  
    SetLayeredWindowAttributes Command1
.hwnd0128Or 1
    
End Sub 

... и кнокпа почему то не становится на 50% прозрачнее :o Где ошибка?

Мутаген 16-07-2014 19:16 2377306

Всю голову уже сломал - пробовал вместо hwnd писать идентификатор hDC для кнопки функцией GetWindowDC - то же не выходит... :shout: :shout: :shout: Пните меня в правильное направление :cry:


Время: 03:47.

Время: 03:47.
© OSzone.net 2001-