Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Rostik Ultra (2)
-
- Продвинутый пользователь

-
-
- Сообщения: 159
- Зарегистрирован: 10.05.2005 (Вт) 2:41
- Откуда: Антарктическая республика
-
Rostik Ultra (2) » 24.05.2005 (Вт) 4:37
В апи гайде есть функция - SetLayeredWindowAttributes Если с её помощью сделать полупрозрачную форму то например выпадающие в цикле меню будут тормозиться... (даже если полупрозрачность устранить - 255 )
как сделать чтобы не тормозилось когда полупрозрачности уже нет ( как нибудь отключить работу этой функции )
-
GM
-
- programador

-
-
- Сообщения: 1427
- Зарегистрирован: 24.06.2003 (Вт) 15:56
- Откуда: 194.67.52.100
-
GM » 24.05.2005 (Вт) 7:24
Попробуй вот так:
- Код: Выделить всё
Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
Ret = Ret Or Not WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
Так мы отменяем мультислойность из-за которой возникают тормоза
الفيجوال بيسك الرابح
-
Jenizix
-
- Географ

-

-
- Сообщения: 545
- Зарегистрирован: 20.04.2004 (Вт) 20:52
- Откуда: Москва
-
Jenizix » 24.05.2005 (Вт) 7:50
Rostik Ultra (2), ты походу какой-то большой проект разрабатываешь =)))) колись какой =)))
Ушел в себя, вернусь не скоро...
Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!
-
hCORe
-
- VB - Экстремал

-

-
- Сообщения: 2332
- Зарегистрирован: 22.02.2003 (Сб) 15:21
- Откуда: parent directory
-
hCORe » 24.05.2005 (Вт) 20:28
Оптимизаторы мозгов он делает! В смысле, программы для развития памяти и навыков чтения у детей от 10 до 99.

Моду создают модоки, а распространяют модозвоны.
-
GM
-
- programador

-
-
- Сообщения: 1427
- Зарегистрирован: 24.06.2003 (Вт) 15:56
- Откуда: 194.67.52.100
-
GM » 24.05.2005 (Вт) 20:52
Сорри, там вроде бы так должно быть:
- Код: Выделить всё
Ret = Ret And Not (WS_EX_LAYERED)
Незнаю просто в апи-гайде похожый пример нашел, так вот там так написано.
الفيجوال بيسك الرابح
-
hCORe
-
- VB - Экстремал

-

-
- Сообщения: 2332
- Зарегистрирован: 22.02.2003 (Сб) 15:21
- Откуда: parent directory
-
hCORe » 24.05.2005 (Вт) 20:56
А мне больше по душе
- Код: Выделить всё
Ret = Ret Xor WS_EX_LAYERED
Моду создают модоки, а распространяют модозвоны.
-
Rostik Ultra (2)
-
- Продвинутый пользователь

-
-
- Сообщения: 159
- Зарегистрирован: 10.05.2005 (Вт) 2:41
- Откуда: Антарктическая республика
-
Rostik Ultra (2) » 25.05.2005 (Ср) 3:43
Jenizix писал(а):Rostik Ultra (2), ты походу какой-то большой проект разрабатываешь =)))) колись какой =)))
Быстрое чтение 2
-
Rostik Ultra (2)
-
- Продвинутый пользователь

-
-
- Сообщения: 159
- Зарегистрирован: 10.05.2005 (Вт) 2:41
- Откуда: Антарктическая республика
-
Rostik Ultra (2) » 25.05.2005 (Ср) 3:55
GM
Первый код порождает глюк
исправление Ret = Ret And Not (WS_EX_LAYERED) устраняет глюк но прозрачность не создаётся
2 hCORe Код: Ret = Ret Xor WS_EX_LAYERED - тормозится точно также
ЗЫ : дядьки , ну зацените в чём фишка... есть форма на ней выпадают меню ( пока всё нормально ... ) потом какое-то событие делает окно прозрачным , ( пока оно прозрачно на форме ничё не двигается так что пиливать на тормоза... ( хотя если подскажете способ устранить тормоза буду благодарен ) потом окно снова становится нормальным ( не прозрачным ) и вот здесь проблема - меню продолжают до неприличия тормозиться
поэтому вопрос : как восстановить прежнее состояние окна без этой функции ( раз уж она такая $#%$%%$ ) типа как нибудь задать прежние аттрибуты окна ( и самое главное выгрузить функцию из оперативной памяти (или где она там сидит ) чтобы впредь не мешала ...)
-
GM
-
- programador

-
-
- Сообщения: 1427
- Зарегистрирован: 24.06.2003 (Вт) 15:56
- Откуда: 194.67.52.100
-
GM » 25.05.2005 (Ср) 7:54
Ну так запомни GetWindowLong, вначале программы, а потом восстановляй. Тормоза возникают из-за многослойности.
الفيجوال بيسك الرابح
-
Rostik Ultra (2)
-
- Продвинутый пользователь

-
-
- Сообщения: 159
- Зарегистрирован: 10.05.2005 (Вт) 2:41
- Откуда: Антарктическая республика
-
Rostik Ultra (2) » 31.05.2005 (Вт) 3:05
Вопрос решён :
Сохранить стиль окна
lngOldWindowsStyle& = GetWindowLong&(hwnd&, GWL_EXSTYLE)
Восстановить стиль окна
aaa=SetWindowLong&(hwnd, GWL_EXSTYLE, lngOldWindowsStyle& And WS_EX_LAYERED)
-
GM
-
- programador

-
-
- Сообщения: 1427
- Зарегистрирован: 24.06.2003 (Вт) 15:56
- Откуда: 194.67.52.100
-
GM » 31.05.2005 (Вт) 7:31
Rostik Ultra (2) писал(а):Вопрос решён :
Сохранить стиль окна
lngOldWindowsStyle& = GetWindowLong&(hwnd&, GWL_EXSTYLE)
Восстановить стиль окна
aaa=SetWindowLong&(hwnd, GWL_EXSTYLE, lngOldWindowsStyle& And WS_EX_LAYERED)
Ну так я это и писал, только одно но. lngOldWindowsStyle&
And WS_EX_LAYERED там должен быть Or.
الفيجوال بيسك الرابح
-
tyomitch
-
- Пользователь #1352

-

-
- Сообщения: 12822
- Зарегистрирован: 20.10.2002 (Вс) 17:02
- Откуда: חיפה
tyomitch » 31.05.2005 (Вт) 11:17
GM, а по-моему, And Not... Rostik же этой строчкой снимает прозрачность?
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, Majestic-12 [Bot], SemrushBot, Yandex-бот и гости: 10