powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6: Прозрачная метка на прозрачном юзерконтроле
15 сообщений из 15, страница 1 из 1
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36572870
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сделать юзерконтрол прозрачным и метку на нем прозрачную (справедливо возжелав видеть фон формы сквозь это все), то эффект превосходит все ожидания - текст метки при размещении контрола на форме перестает быть виден.

Можно ли это как-то побороть разумными усилиями?
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36573625
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отказаться от меток, а текст писать с помощью Print.
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36573677
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Дык тот же эффект - ничего не видно. Метка же - неоконный контрол, и внутри него, как я понимаю, тот же принт.
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36573913
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мало ли, что там внутри. Print — операция чисто графическая, а отрисовка даже безоконного контрола — нет.
Добавь в проект пустой юзерконтрол.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub UserControl_Initialize()
    UserControl.BackStyle = vbTransparent
    UserControl.MaskColor = RGB( 255 ,  0 ,  255 )
    UserControl.BackColor = RGB( 255 ,  0 ,  255 )
    UserControl.AutoRedraw = True
End Sub

Private Sub UserControl_Show()
    Print "Label1"
    UserControl.MaskPicture = UserControl.Image
End Sub

Jah loves you.
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36573927
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RGB(255, 0, 255) можно уверенно заменить на vbMagenta или другой любимый кислотный цвет.
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36573952
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати не вижу смысла в этих плясках. Прозрачный юзерконтрол может быть только графическим, перерисовывающим себя в ответ на действия пользователя, любые другие контролы в нем будут невидимы.

В полный рост я это делал в нижеприложенном проекте, от которого потом отказался.

Jah loves you.
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36573964
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyКстати не вижу смысла в этих плясках. Прозрачный юзерконтрол может быть только графическим, перерисовывающим себя в ответ на действия пользователя, любые другие контролы в нем будут невидимы.

А вот это высказывание не понял.
Кнопка или поле на нем вполне видны и никуда не деваются.
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36573977
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, точно. Видимо по какой-то другой причине они у меня когда-то пропадали.
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36573997
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как задавать точное место для вывода командой Print? Что-то в описании команды на эту тему ничего не сказано, а с графикой на форме работать не приходилось.

И еще. В чем смысл этого присвоения?
Код: plaintext
UserControl.MaskPicture = UserControl.Image
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36574041
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА как задавать точное место для вывода командой Print?CurrentX/Y
Shocker.ProВ чем смысл этого присвоения?В Image происходит отрисовка действий типа Print, PaintPicture, Line и т.п., а MaskPicture задает картинку с маской, которая будет фоном. Маска — области цвета, заданного свойством MaskColor, они будут вырезаны. Смысл присвоения — мы сами рисуем и устанавливаем картинку-маску, а не определяем ее в дизайн-тайме. С тем же успехом можно рисовать в какой-нибудь посторонней Picture1 и делать UserControl.MaskPicture = Picture1.Image.

Jah loves you.
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36574054
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык ведь UserControl.Image по идее Nothing, я ж его не программирую заранее
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36574082
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Image это фон, картинка, она не бывает Nothing.

Jah loves you.
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36574093
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, то бишь
Код: plaintext
UserControl.BackColor = RGB(255, 0, 255)
создает эту картинку?
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36574097
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Она изначально есть. Окно формы создается с hDC, при BackColor просто происходит заливка.

Jah loves you.
...
Рейтинг: 0 / 0
VB6: Прозрачная метка на прозрачном юзерконтроле
    #36574105
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, ну теперь понятно, как вся эта конструкция работает. Спасибо.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6: Прозрачная метка на прозрачном юзерконтроле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]