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

Фоновое изображение на ListBox и Slider

15.12.2014, 08:28. Показов 2480. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хотелось бы узнать, можно установить изображение как фон в ListBox?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.12.2014, 08:28
Ответы с готовыми решениями:

Фоновое изображение
Всем привет. Я верстаю страницу, у которой есть фоновое изображение. В css для фона прописаны следующие свойства: background-size: auto...

Фоновое изображение
Как сменить фоновое изображение после клика по кнопке "Создать" в меню ... private void создатьToolStripMenuItem_Click(object...

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

9
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
15.12.2014, 09:03
Можно, обрабатывай сообщение WM_CTLCOLORLISTBOX родителя листбокса.
1
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 11
15.12.2014, 09:04  [ТС]
Не подскажете как? Я в этом "дуб дубом"...
Ну или пример кода
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
15.12.2014, 09:07
Цитата Сообщение от Vladneu Посмотреть сообщение
Ну или пример кода
Используй сабклассинг, а обработку сообщения смотри тут (процедура WndProc)
0
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 11
16.12.2014, 16:54  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Используй сабклассинг, а обработку сообщения смотри тут (процедура WndProc)
Всё-равно не могу понять. Хоть убейте!
0
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 11
16.12.2014, 17:25  [ТС]
Никак не могу понять, как изменить вид "Slider". Могли бы вы подсказать что да как?
Желательно поподробнее, просто многого не знаю пока.
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
16.12.2014, 19:08
Распиши подробней что хочешь.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
17.12.2014, 03:28
TickStyle
0
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 11
17.12.2014, 10:50  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Распиши подробней что хочешь.
Убрать этот белый фон элемента, ну или сделать его прозрачным
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
17.12.2014, 20:41
Лучший ответ Сообщение было отмечено Vladneu как решение

Решение

Вот пример, можешь сделать фоновый рисунок на форме и разместить элементы на нем. Для смены фона нужно перехватывать сообщения WM_CTLCOLOR* (для каждого элемента свой):
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
Option Explicit
 
Private Declare Function CreatePatternBrush Lib "gdi32" (ByVal hBitmap As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function SetBrushOrgEx Lib "gdi32" (ByVal hdc As Long, ByVal nXOrg As Long, ByVal nYOrg As Long, lppt As Any) As Long
Private Declare Function MapWindowPoints Lib "user32" (ByVal hwndFrom As Long, ByVal hwndTo As Long, lppt As Any, ByVal cPoints As Long) As Long
Private Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As Any, ByVal bErase As Long) As Long
Private Declare Function SetBkMode Lib "gdi32" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
Private Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
 
Private Const TRANSPARENT           As Long = 1
Private Const WM_CTLCOLORLISTBOX    As Long = &H134
Private Const WM_CTLCOLORSTATIC     As Long = &H138
Private Const WM_VSCROLL            As Long = &H115
 
Dim WithEvents wndProc  As clsTrickSubclass ' Объект для сабклассинга формы
Dim WithEvents lstProc  As clsTrickSubclass ' Объект для сабклассинга списка
 
Dim hBackBrush  As Long ' Фоновая кисть
 
Private Sub Form_Load()
    ' Создаем кисть для отрисовки фона на основе фонового изображения формы
    hBackBrush = CreatePatternBrush(Me.Picture.Handle)
    ' Сабклассинг формы
    Set wndProc = New clsTrickSubclass
    Set lstProc = New clsTrickSubclass
    
    wndProc.Hook Me.hwnd
    lstProc.Hook lstTestList.hwnd
    
    ' Добавляем в список тестовые значения
    Do While lstTestList.ListCount < 100
        lstTestList.AddItem Format(lstTestList.ListCount, "ITE\M 00")
    Loop
    
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
    ' Удаляем кисть
    DeleteObject hBackBrush
End Sub
 
' Оконная процедура списка
Private Sub lstProc_wndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long, Ret As Long, DefCall As Boolean)
    
    Select Case Msg
    ' При прокрутке списка
    Case WM_VSCROLL
        ' Объявляем всю область списка недействительной и требующей перерисовки
        InvalidateRect hwnd, ByVal 0&, 0
    End Select
    ' Вызов по умолчанию
    DefCall = True
    
End Sub
 
' Оконная процедура формы
Private Sub wndProc_WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long, Ret As Long, DefCall As Boolean)
    
    Select Case Msg
    ' При запросе кисти фона списка или слайдера
    Case WM_CTLCOLORSTATIC, WM_CTLCOLORLISTBOX
        Dim pts(1)  As Long
        ' Получаем координаты элемента
        MapWindowPoints lParam, Me.hwnd, pts(0), 1
        ' Сдвигаем точку отсчета координат кисти, чтобы она совпадала с фоновом изображением под контролом
        SetBrushOrgEx wParam, -pts(0), -pts(1), ByVal 0&
        ' Если это список
        If lParam = lstTestList.hwnd Then
            ' Устанавливаем прозрачный фон для текста
            SetBkMode wParam, TRANSPARENT
            ' Устанавливаем цвет текста
            SetTextColor wParam, vbWhite
        
        End If
        ' Возвращаем кисть
        Ret = hBackBrush
        
    Case Else:  DefCall = True  ' Остальное оставляем без изменений
    End Select
    
End Sub
Миниатюры
Фоновое изображение на ListBox и Slider  
Вложения
Тип файла: rar ChangeBkgnd.rar (74.0 Кб, 108 просмотров)
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.12.2014, 20:41
Помогаю со студенческими работами здесь

Фоновое изображение
Облазил интернет, мало чего нашел. Помогите новичку) Нужно поставить изображение как фон.

Фоновое изображение
Как сделать фон как на кинопоиске http://www.kinopoisk.ru/film/9544/. Имею ввиду, что у них в начале странице на фоне определённая...

Фоновое изображение
Всем привет думаю эта тема сейчас актуальна так как я не раз пытался нати в поисковике как же растянуть фоновое изображение. Итак, описываю...

Фоновое изображение
Всем привет! есть картинка размером 5000x3750 она подставлена фоном при выставлении background-size в 100% она обрезается по...

Фоновое изображение
Всем есть здрасти! Я вот веб мастером хочу стать, мечтаю о своем проекте, kinopro.ru кинотека... Вот учусь, все хорошо было, пока е...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru