Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ и WinAPI
Войти
Регистрация
Восстановить пароль
 
jonson
234 / 207 / 84
Регистрация: 18.03.2010
Сообщений: 750
#1

ListBox: сообщения о прокрутке (скроллинг), перерисовка фона - C++ WinAPI

03.04.2013, 01:55. Просмотров 812. Ответов 2
Метки нет (Все метки)

Здравствуйте. Собственно проблема с перерисовкой фона после прокрутки.
создаю ListBox следующим образом
C++ (Qt)
1
h_listbox = CreateWindow("ListBox", "", WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL, 690, 10, 245, 300, window, NULL, hInstance, 0 );
далее создаю кисть на основе битмапа и обрабатываю WM_CTLCOLORLISTBOX, в котором возвращаю эту кисть для заполнения фона.
C++ (Qt)
1
2
3
4
5
6
case  WM_CTLCOLORLISTBOX:
    {
        SetBkMode((HDC)wParam, TRANSPARENT);
        SetTextColor((HDC)wParam, RGB(0,0,0) );
        return(LRESULT)h_brush_listbox_fone; // h_brush_listbox_fone - кисть созданная посредством CreatePatternBrush
    }
Все вроде работает, но при скроллинге требуется полная перерисовка фона. (см. скриншот до и после прокрутки.)
Пробую в оконной процедуре главного окна (родитель ListBox'а) ловить WM_VSCROLL, чтобы выполнить обновление фона,
C++ (Qt)
1
2
3
case WM_VSCROLL:
        InvalidateRect(h_listbox,0,true);
        break;
но сообщение не приходит... Поясните пожалуйста, как правильно реализовать перерисовку фона после прокрутки?
http://www.cyberforum.ru/win-api/thread558561.html
0
Миниатюры
ListBox: сообщения о прокрутке (скроллинг), перерисовка фона  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2013, 01:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос ListBox: сообщения о прокрутке (скроллинг), перерисовка фона (C++ WinAPI):

Скроллинг фона
Как сделать скроллинг фона? Например, есть картинка узкая и длинная с...

Затемнение фона при прокрутке вниз
Вот встретил на сайте интересное оформление ( http://www.master-live.ru ), при...

Дёргание фона при прокрутке TreeView
На форме есть TreeView, когда его начинаешь прокручивать, то фон формы под ним...

Плавная Смена фона страницы при прокрутке
Доброго времени суток! Как сделать чтобы при прокрутке страницы менялся цвет...

Перерисовка Edit control, смена фона на другой цвет (MFC)
Здравствуйте, уважаемые Дамы и Господа. Задаю вам вопрос, так как сам уже...

2
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25609 / 17162 / 6825
Регистрация: 22.10.2011
Сообщений: 30,359
Записей в блоге: 6
03.04.2013, 02:12 #2
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Цитата Сообщение от jonson Посмотреть сообщение
Пробую в оконной процедуре главного окна (родитель ListBox'а) ловить WM_VSCROLL
С чего бы это? Переопределяй оконную функцию самого LISTBOX-а, и обрабатывай в ней WM_ERASEBKGND. Для переопределения - GetWindowLongPtr/SetWindowLongPtr + GWLP_WNDPROC...
1
jonson
234 / 207 / 84
Регистрация: 18.03.2010
Сообщений: 750
03.04.2013, 23:00  [ТС] #3
UI, спасибо. Теперь все рисуется как надо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2013, 23:00
Привет! Вот еще темы с решениями:

Скроллинг ListBox
Здрасте, как сделать горизонтальную прокрутку в ListBox? CBuilder

Получение сообщения от сервера и перерисовка GUI
Решил написать игру, где клиенты общаются через сервер. Столкнулся с проблемой....

Горизонтальный скроллинг ListBox
подскажите пожалуйста как сделать чтоб стало возможно колесиком мыши...

Listbox ложное срабатывание onClick при прокрутке
Приложение под Android. В общем ситуация такая: когда пальцем крутишь список...


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

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

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