Эфект прозрачности

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Morfius
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 25.03.2003 (Вт) 14:27
Откуда: КМВ

Эфект прозрачности

Сообщение Morfius » 18.04.2003 (Пт) 12:00

Я знаю что в XP можно делать форму или лейбл полупрозрачными, а вот как??? :shock:
Или я ошибаюсь :?:
Жизнь похожа на сказку, - Чем дальше, тем страшнее

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 18.04.2003 (Пт) 15:02

:wink:
Option Explicit
'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 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 GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000

Private Sub Form_load()
Dim TRANS As Long
TRANS = 10 '(10 до 255)
SetWindowLong hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED
SetLayeredWindowAttributes hWnd, 0, TRANS, LWA_ALPHA
End Sub

Smert
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 07.04.2006 (Пт) 18:47
Откуда: Молдова,Бельцы

Сообщение Smert » 23.04.2006 (Вс) 21:20

ALX_2002

Заодно и я скажу спасибо за совет 8)
Пап, а что такое ВБ?
Cынок, это просто фантастика!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 23.04.2006 (Вс) 21:40

Отдельно Label полупрозрачным сделать нельзя, его можно нарисовать самому, после наложить тем же SetDIBitsToDevice, вычислив предварительно прозрачность пикселей.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Majestic-12 [Bot] и гости: 188

    TopList  
cron