Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 0
Регистрация: 17.03.2010
Сообщений: 137

Прозрачность формы и непрозрачность Label

23.04.2012, 12:04. Показов 1442. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Задача такая, нужно сделать форму полупрозрачной, но при этом, чтобы чёрные буквы в элементе Label остались полностью непрозрачными. Это возможно, вообще? У меня не получилось, код ниже!

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
Option Explicit
 
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 LWA_ALPHAANDCOLORKEY = &H3
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
 
Private Sub Command1_Click() ' прозрачность формы
Dim ret As Long
 
ret = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
ret = ret Or WS_EX_LAYERED
SetWindowLong Me.hwnd, GWL_EXSTYLE, ret
SetLayeredWindowAttributes Me.hwnd, 0, 100, LWA_ALPHA
End Sub
 
Private Sub Command2_Click() ' непрозрачность чёрного цвета
Dim ret1 As Long
 
ret1 = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
ret1 = ret1 Or WS_EX_LAYERED
SetWindowLong Me.hwnd, GWL_EXSTYLE, ret1
SetLayeredWindowAttributes Me.hwnd, &H0&, 128, LWA_ALPHAANDCOLORKEY
End Sub
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2012, 12:04
Ответы с готовыми решениями:

Прозрачность и поведение Label'ов
Мне в наследство досталась довольно сложная форма, в которой на фоне некой картинки есть несколько прозрачных Label'ов, которые то...

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

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

6
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
23.04.2012, 12:32
Код не мой!
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
Option Explicit
 
'© 2005 Jenizix
 
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
 
Private Const RGN_OR = 2
 
Private Sub TranspForm(ByVal frm As Form)
    Dim WindowRgn As Long ' тут будет храниться регион, по которому в последствии будет вырезано окно
    Dim ctrlRgn As Long ' тут будет храниться регион текущео конрола
    Dim ctrl As Control ' текущий контрол
   
    WindowRgn = CreateRectRgn(0, 0, 0, 0) ' создаем пустой регион
   
    On Error Resume Next
    For Each ctrl In frm.Controls ' перебираем все контролы на форме
        ctrlRgn = CreateRectRgn(frm.ScaleX(ctrl.Left, frm.ScaleMode, vbPixels), frm.ScaleY(ctrl.Top, frm.ScaleMode, vbPixels), frm.ScaleX(ctrl.Left + ctrl.Width, frm.ScaleMode, vbPixels), frm.ScaleY(ctrl.Top + ctrl.Height, frm.ScaleMode, vbPixels))  ' создаем регион текущего контрола
        CombineRgn WindowRgn, WindowRgn, ctrlRgn, RGN_OR ' комбинируем его с регионом WindowRgn
    Next
   
    SetWindowRgn frm.hWnd, WindowRgn, True ' вырезаем окно по региону WindowRgn
   
    DeleteObject ctrlRgn
End Sub
 
Private Sub Form_Load()
    TranspForm Me ' вызываем ф-ию которая делает форму прозрачной
End Sub
0
2 / 2 / 0
Регистрация: 17.03.2010
Сообщений: 137
23.04.2012, 15:09  [ТС]
PAnT0P, не это мне нужно. мне нужно одновременно, чтобы и форма была полупрозрачной и текст был полностью непрозрачный

Добавлено через 2 часа 24 минуты
или это невозможно? просто нужно сделать так, чтобы чёрный цвет на форме всегда был непрозрачным. можно так?
0
 Аватар для PAnT0P
1492 / 587 / 107
Регистрация: 26.03.2012
Сообщений: 1,039
23.04.2012, 22:42
Если устроит можно попробовать сделать через png файл с прозрачностью
1
2 / 2 / 0
Регистрация: 17.03.2010
Сообщений: 137
23.04.2012, 23:53  [ТС]
PAnT0P, спасибо, но png не надо.
0
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
01.05.2012, 07:50
А обязателен Label ?? Я пишу на форме и потом:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Form_Load()
Dim ret As Long
Form1.BackColor = &HFFFFFF
Form1.AutoRedraw = True
Print "AAAAAAAAAAAAAAAAA"
myback = Form1.BackColor
 
ret = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
ret = ret Or WS_EX_LAYERED
SetWindowLong Me.hwnd, GWL_EXSTYLE, ret
SetLayeredWindowAttributes Me.hwnd, myback, 0, LWA_COLORKEY
End Sub
Декларация аналогична твоей. И симпатичненько получается )))
Вроде при втором запуске функции первая убивается...
1
2 / 2 / 0
Регистрация: 17.03.2010
Сообщений: 137
01.05.2012, 14:35  [ТС]
спасибо, попробую
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.05.2012, 14:35
Помогаю со студенческими работами здесь

Как сохранить измененные названия CommandButton и Label после закрытия формы?
Как сохранить измененные названия CommandButton и Label после закрытия формы.

[WPF] Размер формы от шрифта и текста label и перемещение формы мышкой по label
Здравствуйте. Возможно глупый вопрос но я новичек в wpf. Как там сделать размер формы в зависимости от шрифта и текста label. И как сделать...

Прозрачность формы, при наведении мыши на кнопку реализовать изменение её положения относительно формы с невозможностью выхода за границы формы
доброй ночи, уважаемые программисты, студенты,а также любители программировать. помогите, пожалуйста, написать программу на языке С++ ...

прозрачность Label
Необходимо сделать Label прозрачным. В свойствах выставляю параметр в Transparent - не реагирует. Программно, та же петрушка :cry: ...

Прозрачность кнопки и label
Здравствуйте. Подскажите пожалуйста как сделать прозрачный фон у button и Lable. Картинка .png с прозрачным фоном, а на форме фон белый....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru