Прозрачность

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Прозрачность

Сообщение Akella » 03.02.2005 (Чт) 8:11

Можно ли сделать линиям прозрачность (как ФотоШОПЕ 0~100%)
Не бойся что не знаешь, бойся что не учишься.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.02.2005 (Чт) 11:27

Поясните точнее, - каким линиям?

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 03.02.2005 (Чт) 13:36

Код: Выделить всё
'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



Код: Выделить всё
SetTransparent Me.hWnd, 212




Если я правильно понял :?

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 03.02.2005 (Чт) 13:40

Ramzes писал(а):
Код: Выделить всё
'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



Код: Выделить всё
SetTransparent Me.hWnd, 212




Если я правильно понял :?
Нет понял не парвельно :D ему нужно какие-то линии сделать прозрачные а не форму :wink:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 03.02.2005 (Чт) 13:57

тогда хедл линий поставить :roll:

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 03.02.2005 (Чт) 14:29

мне надо сделать Line прозрачной 0~100 % как Photoshop.
тогда хедл линий поставить

КАК ?
Не бойся что не знаешь, бойся что не учишься.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 03.02.2005 (Чт) 14:40

А можно место линий что нить другое поставить?, потому как у линий нет HWND , разве что контрол свой писать :?

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 03.02.2005 (Чт) 14:43

Запускаю код _Мики_ и мне ругается ошибкой 453 типа "can`t find DLL entry point SetLayeredWindowAttributes in user32"
В чем проблема?

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 03.02.2005 (Чт) 14:43

не контролы я нелюблю
Не бойся что не знаешь, бойся что не учишься.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 03.02.2005 (Чт) 14:45

Алексей К. писал(а):Запускаю код _Мики_ и мне ругается ошибкой 453 типа "can`t find DLL entry point SetLayeredWindowAttributes in user32"
В чем проблема?


Какой код :shock: :?: :roll:

А какая винда, просто код который я дал катит только на 2k и выше :!:

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 03.02.2005 (Чт) 14:53

Понятно, у меня 98'ая винда стоит.

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 03.02.2005 (Чт) 17:02

Можно GetPixel|PutPixel нарисовать вручную.

GDI+, GDI+, GDI+! :)
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)


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

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

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

    TopList