Программирование
Веб программирование

Прозрачная форма с непрозрачными элементами

 
 

Задумывались как сделать прозрачную форму? 

Вот пример создания прозрачной формы:

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 Form_Load() 
 Me.BackColor = RGB(1, 1, 1) 
 Dim Ret As Long 
 Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE) 
 Ret = Ret Or WS_EX_LAYERED 
 SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret 
 SetLayeredWindowAttributes Me.hWnd, Val(RGB(1, 1, 1)), 0, LWA_COLORKEY 
 End Sub

Метод работает так:

Задаёт форме при загрузке цвет: RGB(1, 1, 1) (черный) P.s (можно выбрать другой)
Потом назначает что RGB(1, 1, 1) делжен быть прозрачным

Вот и всё т.е форма сама черная, но программа делает чёрный прозрачным.


Есть вопросы? Спроси на нашем форуме!!
Гость [04.04.2012 09:22]

Ты уж извени, ты бы хоть его переделал, а то чисто содрал.

alex13sh [04.04.2012 09:29]

чё вы мелите, он айпишу нашёл я ему цветом rgb помог и т.д. не фига не содрал
покажите место от куда чисто в точ точ содранно!!!!

DIGIUS [04.04.2012 11:04]

Главное не то что содрал не содрал, а в том что люди если этого не знали могут узнать.
А то што содрал признаю!, но слишком это хороший код чтобы его пропускать.

террорист с прищепкой [04.04.2012 11:06]

спасиба бальшое!!!

DIGIUS [04.04.2012 12:31]

Всегда пожалуйста, скора найду как втыкать прозрачные картинки)

Thomas [10.05.2012 11:43]

Thanks alot - your anwesr solved all my problems after several days struggling

DIGIUS [10.05.2012 16:45]

Thanks alot - your anwesr solved all my problems after several days struggling

DIGIUS [10.05.2012 16:45]

You're welcome, come again!), Google translation did not vouch for the accuracy! =)

Razor64 [14.06.2012 17:57]

А как сделать на 80% прозрачную форму? т.е. полупрозрачную...

ViAik [28.04.2014 08:49]

А у меня после того как ввожу код не хочет показывать Обьект (т. е. редактировать вид формы), пишет The file "C:/Windows/Temp/VB6458.tmp" does not exist и вылетает!

Stertor370 [28.04.2014 10:34]

ViAik, во время компиляции среда разработки создает временные файлы, которые кто-то стирает. Ты не пользуешься случайно ccleaner-ом? Не надо запускать утилиты для чистки диска во время разработки.

ALLEX88 [14.08.2015 14:27]

Клевый код :) Я таких чудесных окошек намутил с помощью шейпов, которые благодаря коду образуют нужные мне формы окна, а вся остальная часть не видна. Плюс скомбинировал с кодом таскания окна за любое место и вуаля)



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.