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

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

15.12.2014, 08:28. Показов 2535. Ответов 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
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
15.12.2014, 09:03
Можно, обрабатывай сообщение WM_CTLCOLORLISTBOX родителя листбокса.
1
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 11
15.12.2014, 09:04  [ТС]
Не подскажете как? Я в этом "дуб дубом"...
Ну или пример кода
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 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
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 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
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru