Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
dimas5552
7 / 7 / 0
Регистрация: 27.01.2014
Сообщений: 28
1

Форма становится прозрачной, а кнопка - нет

17.07.2014, 09:23. Просмотров 2993. Ответов 67
Метки нет (Все метки)

Создаем проект Visual Basic, на форму кидаем кнопку и пишем код в эту форму:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
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 Form_Load() 
    Dim Ret As Long 
    Ret = GetWindowLong(hwnd, GWL_EXSTYLE) 
    Ret = Ret Or &H80000 
    SetWindowLong hwnd, (-20), Ret 
     
    SetLayeredWindowAttributes hwnd, 0, 128, 2 
End Sub
И наша форма становится прозразна на 50 процентов. Теперь немножко переделываем код для кнопки:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
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 Form_Load() 
    Dim Ret As Long 
    Ret = GetWindowLong(Command1.hwnd, GWL_EXSTYLE) 
    Ret = Ret Or &H80000 
    SetWindowLong Command1.hwnd, (-20), Ret 
   
    SetLayeredWindowAttributes Command1.hwnd, 0, 128, 2 Or 1 
     
End Sub
... и кнопка почему то не становится на 50% прозрачнее Где ошибка?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2014, 09:23
Ответы с готовыми решениями:

При выделеном тексте кнопка становится активной
помогите как задать условие если выделяеш текств в RichTextBox кнопка...

Проверка: загружена форма или нет?
Как узнать загружена (Form2) или нет?

Как узнать загружена форма или нет?
Как узнать загружена форма или нет? Спасибо.

Как узнать загружена нужная форма или нет?
Проект с MDIForm. Дочерние формы распологаются в определённом порядке в...

Как сделать форму прозрачной?
Подскажите неумному, как сделать форму прозрачной (например для логотипа...)

67
dimas5552
7 / 7 / 0
Регистрация: 27.01.2014
Сообщений: 28
17.07.2014, 15:21  [ТС] 21
это у вас ошибка синтакса или присвоения скорее всего
Так оно и есть! А как испривить я и тырнет не знают! Вот и спрашиваю
0
Антихакер32
Заблокирован
17.07.2014, 16:20 22
что значит тырнет не знаю... , в русском языке таких слов нет
может я не русский ?

Добавлено через 9 минут

Не по теме:

Кстати, если интересно, действительно на нашем форуме, если воспользоватся
расширенным поиском, то можно найти, оссобенно по байсику абсолютно все
это я без преувеличения, а если конкрктнее, вводиш там-же имя пользователя
и ищеш искомое значение по ключевому слову, кстате на других мертвых сайтах
даже не делай таких попыток, так-как там даже серенькой реализации калькулятора
не сможеш найти, неговоря о полупрозрачности отдельных кнопок

0
SoftIce
es geht mir gut
10513 / 4022 / 1024
Регистрация: 27.07.2011
Сообщений: 9,772
Завершенные тесты: 1
17.07.2014, 17:00 23
dimas5552, я бы не стал "рожать" кнопку. Поставьте её сразу на форму, сделайте невидимой, в нужный момент показывайте, и все дела.
1
Миниатюры
Форма становится прозрачной, а кнопка - нет  
Антихакер32
Заблокирован
17.07.2014, 17:19 24
Ну да, SoftIce очень умный чел, и я понял что он хочет сказать,
лиж-бы теперь это понял наш TC тоесть создатель темы
0
The trick
Модератор
7369 / 2586 / 756
Регистрация: 22.02.2013
Сообщений: 3,800
Записей в блоге: 76
17.07.2014, 17:32 25
Цитата Сообщение от dimas5552 Посмотреть сообщение
Хорошо, если не получается сделать прозрачность слоями как тогда сделать что бы кнопка была просто прозрачная на полную?
В смысле "на полную"? Полностью невидимую кнопку?
Цитата Сообщение от dimas5552 Посмотреть сообщение
Можно привести суть в качестве минипримера как у меня?
Какой пример? Нельзя делать слоеными не Top-level окна. Хочешь так делать - рисуй сам, как у меня в примерах. Если хочешь полностью прозрачную - просто скрывай окно, либо делай регионы по точкам, чтобы имитировать полупрозрачность.
Цитата Сообщение от Антихакер32 Посмотреть сообщение
тогда это избавит от проблем совместимости
Что за ересь? Какая несовместимость?
Цитата Сообщение от dimas5552 Посмотреть сообщение
Command1.BackColor = color.transparent
Где это ты нашел? Покажи.
Цитата Сообщение от Антихакер32 Посмотреть сообщение
да, надо апишку добавлять, но я их терпеть не могу эти костыли
Это не костыли. Практически в любом языке используются WinApi.
Цитата Сообщение от Антихакер32 Посмотреть сообщение
Transparent это не то свойство которое определяет цвет
цвет определяется неким числом, от -2147483647 до +2147483647
вот там и юзайте, это у вас ошибка синтакса или присвоения скорее всего
Чего? Цвет в VB6 это для положительных значения RGB 0...16777215, для отрицательных от (-2147483648...-2147483623) которые соответствуют GetSysColor без старшего бита.
Color - это скорее всего Enum.

Добавлено через 11 минут
Цитата Сообщение от Антихакер32 Посмотреть сообщение
А как тогда убрать у кнопки привязку к окну,
можете объяснить без отсылок кудато еще
Есть замечательная функция, о которой ты хорошо знаешь, SetParent называется.
0
dimas5552
7 / 7 / 0
Регистрация: 27.01.2014
Сообщений: 28
17.07.2014, 18:40  [ТС] 26
SoftIce - так задумка в том что бы форма была НЕПРОЗРАЧНОЙ а кнопка на ней ПРОЗРАЧНОЙ!

В смысле "на полную"? Полностью невидимую кнопку?
Кнопку да, а вот текст на ней должен быть виден на 100% и рамки кнопки то же

Где это ты нашел? Покажи.
http://startbasic.ru/prozrachnost-elementov/
0
The trick
Модератор
7369 / 2586 / 756
Регистрация: 22.02.2013
Сообщений: 3,800
Записей в блоге: 76
17.07.2014, 18:44 27
Цитата Сообщение от dimas5552 Посмотреть сообщение
Кнопку да, а вот текст на ней должен быть виден на 100%
Ну тык используй Label, с прозрачным фоном?
Цитата Сообщение от dimas5552 Посмотреть сообщение
Этот код для VB.NET.
0
Антихакер32
Заблокирован
17.07.2014, 18:51 28
Чепушня, то что я и The Trick мой бывш дружбан тут выложил, ито более действеннее и понятнее
что опять подьверждает, что байсиковых вариантов трудно найти,

есть конечно еще вариант ...
0
The trick
Модератор
7369 / 2586 / 756
Регистрация: 22.02.2013
Сообщений: 3,800
Записей в блоге: 76
17.07.2014, 19:07 29
Цитата Сообщение от Антихакер32 Посмотреть сообщение
Чепушня, то что я и The Trick мой бывш дружбан тут выложил, ито более действеннее и понятнее что опять подьверждает, что байсиковых вариантов трудно найти,
Чепушню ты выложил и написал. Я выложил пример прозрачных контролов.

Не по теме:

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

0
SoftIce
es geht mir gut
10513 / 4022 / 1024
Регистрация: 27.07.2011
Сообщений: 9,772
Завершенные тесты: 1
17.07.2014, 19:53 30
Цитата Сообщение от dimas5552 Посмотреть сообщение
задумка в том что бы форма была НЕПРОЗРАЧНОЙ а кнопка на ней ПРОЗРАЧНОЙ!
Типа так что ли?
Форма становится прозрачной, а кнопка - нет

Да ну, ерунда какая-то получается...
0
dimas5552
7 / 7 / 0
Регистрация: 27.01.2014
Сообщений: 28
17.07.2014, 22:47  [ТС] 31
SoftIce, да, ТАК ! Можно исходник, оооочень умоляю
1
SoftIce
es geht mir gut
10513 / 4022 / 1024
Регистрация: 27.07.2011
Сообщений: 9,772
Завершенные тесты: 1
17.07.2014, 23:04 32
А исходника то и нету . Это просто одна форма с дыркой посередине, а под ней вторая полупрозрачная.
Я сделал так для того чтобы уточнить чего Вы хотите сотворить
1
dimas5552
7 / 7 / 0
Регистрация: 27.01.2014
Сообщений: 28
17.07.2014, 23:09  [ТС] 33
Блин, а я уже думал вагон пива выслать))) Так как же все таки сотворить это в жизнь на одной форме?
0
The trick
Модератор
7369 / 2586 / 756
Регистрация: 22.02.2013
Сообщений: 3,800
Записей в блоге: 76
17.07.2014, 23:12 34
Цитата Сообщение от dimas5552 Посмотреть сообщение
SoftIce, да, ТАК ! Можно исходник, оооочень умоляю
У тебя статичная форма? Есть ли какие контролы на ней дополнительно? Покажи форму. Я тебе скажу как сделать.
0
dimas5552
7 / 7 / 0
Регистрация: 27.01.2014
Сообщений: 28
17.07.2014, 23:16  [ТС] 35
У тебя статичная форма? Есть ли какие контролы на ней дополнительно? Покажи форму. Я тебе скажу как сделать.
Для того что бы стало окончательно ясно скажу: Открываем новый проект, на форму не меняя никаких ее свойств кидаем кнопку, так же не меняя ее свойств. И теперь программно нужно ее заставить сделать то что было на прошлой картинке... Ничего кроме кнопки на форме больше нет.
0
The trick
Модератор
7369 / 2586 / 756
Регистрация: 22.02.2013
Сообщений: 3,800
Записей в блоге: 76
17.07.2014, 23:18 36
Цитата Сообщение от dimas5552 Посмотреть сообщение
Для того что бы стало окончательно ясно скажу: Открываем новый проект, на форму не меняя никаких ее свойств кидаем кнопку, так же не меняя ее свойств. И теперь программно нужно ее заставить сделать то что было на прошлой картинке...
Для формы предусмотрено изменение размеров или это статичная форма с фиксированными размерами - это важно.
0
dimas5552
7 / 7 / 0
Регистрация: 27.01.2014
Сообщений: 28
17.07.2014, 23:23  [ТС] 37
Статичная форма
0
The trick
Модератор
7369 / 2586 / 756
Регистрация: 22.02.2013
Сообщений: 3,800
Записей в блоге: 76
17.07.2014, 23:58 38
dimas5552, еще вопрос, тебе нужна полностью прозрачная кнопка или частично?
Вот так пойдет?
0
Вложения
Тип файла: rar Project1.rar (2.9 Кб, 13 просмотров)
Антихакер32
Заблокирован
18.07.2014, 00:07 39
Пойдет наверное, ТС наверное спит, вам таки удалось
а исходник не хотите показать

Добавлено через 1 минуту
Хотелось бы свериться со своим вариантом, только и всего
0
gaw
6633 / 1500 / 169
Регистрация: 09.01.2010
Сообщений: 4,273
18.07.2014, 01:13 40
как вариант , только проблеммно фокусировать
1
Вложения
Тип файла: rar Lr.rar (3.5 Кб, 9 просмотров)
18.07.2014, 01:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2014, 01:13

Как сделать форму прозрачной ?
fd

Как сделать форму прозрачной
Кто знает, можно ли на VB5.0 сделать цвет формы прозрачным? Заранее благодарен...

Проверка "загружена форма или нет" ?
HIHI FRDS ! Подскажите, пожалуйста, как сделать проверку занружена форма или...


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

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

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