Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Sazonov.76
0 / 0 / 0
Регистрация: 06.10.2009
Сообщений: 7
1

Полупрозрачное окно с непрозрачными кнопками и другими элементами управления

28.01.2010, 20:44. Просмотров 1657. Ответов 2
Метки нет (Все метки)

Всем привет! Подскажите кто-нибудь, как сделать полупрозрачное окно с непрозрачными кнопками и другими элементами управления...
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2010, 20:44
Ответы с готовыми решениями:

Полупрозрачное окно в анимации AVI.
Короче задача следующая: Задний фон - AVI файл, т.е. анимация, а на ней должно быть полупрозрачное...

Почти прозрачная форма с непрозрачными на ней элементами управления
Здравствуйте. Подскажите можно ли в VS сделать полностью прозрачную форму, такую как на...

Открыть окно с изображением и кнопками управления
есть страничка HTML с изображение. Подскажите как при нажатии на изображение открыть его в полный...

Перекрывающее окно с элементами управления
И снова доброго времени суток. Ситуация такова - нужно создать окно, которое перекроет весь...

Полупрозрачное окно
Здравствуйте. Подскажите, пожалуйста, как сделать полупрозрачное окно не убирая кнопки ресайза и...

2
БурундукЪ
9564 / 2579 / 83
Регистрация: 17.02.2009
Сообщений: 10,364
28.01.2010, 20:48 2
Как сделать форму (окно) полупрозрачной или полностью прозрачной
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
' Form
' - - - - - -
' Command1 – кнопка
' Command2 – кнопка
' Command3 – кнопка
' Command4 – кнопка
' - - - - - -
' Код формы
 
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 Command1_Click()
' Установить полупрозрачность
  Dim aStyle As Long
  Dim Transparent As Byte
 
' 255 (НЕТ прозрачности) -> полупрозрачность -> 0 (прозрачность)
  Transparent = 200
 
' Получаем расширенный стиль окна (Формы)
  aStyle = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
 
' Переменной aStyle добавляем значение WS_EX_LAYERED
  aStyle = aStyle or WS_EX_LAYERED
 
' Изменяем расширенный стиль окна (Формы)
  Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, aStyle)
 
' Теперь делаем Форму полупрозрачной
  Call SetLayeredWindowAttributes(Me.hWnd, 0, Transparent, LWA_ALPHA)
End Sub
 
Private Sub Command2_Click()
' Установить прозрачный цвет
  Dim aStyle As Long
  Dim TransparentColor As Long
 
' Цвет, который будет полностью прозрачным
  TransparentColor = vbBlack 'Чёрный
 
' Если форме уже установлен расширенный стиль WS_EX_LAYERED,
' то следующие 3 строки кода можно не выполнять
  aStyle = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
  aStyle = aStyle or WS_EX_LAYERED
  Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, aStyle)
 
  Call SetLayeredWindowAttributes(Me.hWnd, TransparentColor, 0, LWA_COLORKEY)
 
End Sub
 
Private Sub Command3_Click()
' Установить прозрачный цвет и полупрозрачность
  Dim aStyle As Long
  Dim TransparentColor As Long
  Dim Transparent As Byte
 
  TransparentColor = RGB(0, 0, 0)
  Transparent = 200
 
' Если форме уже установлен расширенный стиль WS_EX_LAYERED,
' то следующие 3 строки кода можно не выполнять
  aStyle = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
  aStyle = aStyle or WS_EX_LAYERED
  Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, aStyle)
 
  Call SetLayeredWindowAttributes(Me.hWnd, TransparentColor, Transparent, LWA_COLORKEY or LWA_ALPHA)
End Sub
 
Private Sub Command4_Click()
' Убрать полупрозрачность и полную прозрачность
  Dim aStyle As Long
 
  aStyle = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
  aStyle = aStyle Xor WS_EX_LAYERED
  Call SetWindowLong(Me.hWnd, GWL_EXSTYLE, aStyle)
End Sub
 
Private Sub Form_Load()
  Command1.Caption = "Установить полупрозрачность"
  Command2.Caption = "Установить прозрачный цвет"
  Command3.Caption = "Установить и ""то"" и ""другое"""
 
  Command4.Caption = "Убрать полупрозрачность и полную прозрачность"
End Sub
©тибрено
2
Sazonov.76
0 / 0 / 0
Регистрация: 06.10.2009
Сообщений: 7
28.01.2010, 23:32  [ТС] 3
Да всё это я пробовал, работает. Только проблема в том, что в полупрозрачном режиме полупрозрачны вместе с формой и элементы управления (кнопки и т.д.), а надо, чтобы форма оставалась полупрозрачной, а элементы управления непрозрачными.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2010, 23:32

Как сделать прозрачную форму с непрозрачными элементами
Нашёл функцию Opacity, но она делает прозрачной и форму, и всё что на ней, а мне нужно, чтобы был...

Как создать модальное полупрозрачное окно?
Тобишь нужно окно, отображаемое поверх всех остальных и с полупрозрачностью....

Как сделать полупрозрачное окно поверх открытого окна
Здравствуйте! Как вы уже поняли из заголовка, мне нужно создать окно, поверх другого окна. Я думаю,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.