Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Формы с изменяемой прозрачностью

8.3K
24 августа 2006 года
IT-Shark
33 / / 25.05.2006
Доброго времени суток!
Я программирую на VB6 и у меня возник вопрос:
Как сделать так, чтобы форма была прозрачной и её прозрачность можно было регулировать!

Если можно, оставьте ссылку на Ресурс и пример по этой теме!

Спасибо!
18K
24 августа 2006 года
e2e4
6 / / 04.08.2006
Очень интересно! Знающие человеки - откликнитесь!!!
1.2K
24 августа 2006 года
PAVEL BASIC
171 / / 24.07.2006
[CENTER]Небольшое вступление[/CENTER]
Когдата я реализовывал прозрачность формы в своём текстовом редакторе,
но повзраслев задался вопросом на фига прозрачность форм в текстовом редакторе. :rolleyes:

Ну ладно это снова бред пьяного ёжика, а теперь непосредственно перейдём к коду.

'объявляем API функции и константы
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 Const GWL_STYLE = (-16)
Private Const GWL_EXSTYLE = (-20)
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 Const LWA_COLORKEY = &H1
Private Const LWA_ALPHA = &H2
Private Const WS_EX_LAYERED = &H80000
Sub alpha(Hwnds As Long, vals As Long) 'создание прозрачности у формы (описатель окна, степень прозрачности 0 - 255)
If vals < 254 Then 'если значение vals меньше 254, то
Dim lStyle As Long 'объявляем числовую переменную
lStyle = GetWindowLong(Hwnds, GWL_EXSTYLE) 'узнаем аттрибуты окна
lStyle = lStyle Or WS_EX_LAYERED
SetWindowLong Hwnds, GWL_EXSTYLE, lStyle 'устанавливаем аттрибуты окна
SetLayeredWindowAttributes Hwnds, 0, vals, LWA_ALPHA 'устанавливаем прозрачность
Else 'в любом другом случае
SetWindowLong Hwnds, GWL_EXSTYLE, 0 'устанавливаем обычные аттрибуты окна
End If 'закрываем условие
End Sub

Так вот ентот код размещаете в модуле, а потом в том месте откуда вы хотите изменить прозрачность формы делаете вызов:
Call alpha(hwnd окна для изменения прозрачности, Степень прозрачности)

Ну у меня это выглядело вот так:
Call alpha(Me.hwnd, HScroll1.Value)

Если что не так работает извини, давно это было:) :) :)
12K
25 августа 2006 года
djsun
12 / / 16.11.2005
Привет посмотри вот этот пример!
http://www.vbnet.ru/samples/download.aspx?id=711
1.2K
25 августа 2006 года
PAVEL BASIC
171 / / 24.07.2006
:D :D :D Ой сори, ты просил пример, вот специально для тебя сделал.
8.3K
25 августа 2006 года
IT-Shark
33 / / 25.05.2006
Всем огромное спасибо за проявленное внимание!

2 Pavel Basic: Ваш код работает и делает это просто великолепно!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог