Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
4 / 4 / 1
Регистрация: 11.11.2008
Сообщений: 66

Обновление строки CListBox

19.05.2011, 12:02. Показов 2033. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Как программно обновить элемент строки CListBox что бы сгенерировалось событие DrawItem. Invalidate или UpdateData не подходят, обновиться весь элемент CListBox, что не очень бы хотелось.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.05.2011, 12:02
Ответы с готовыми решениями:

Как побороть мерцание при перерисовке строки контрола CListBox
Добрый день! Как побороть мерцание при перерисовке строки контрола CListBox. //Строку обновляю в void DrawItem(LPDRAWITEMSTRUCT...

MFC CListBox
Всем здравствуйте. Как можно сделать поиск в ListBox по нажатии на кнопку только одного элемента (например, в списке есть несколько строк,...

CListBox, множественная выборка
Программа на MFC, суть проста: сделать множественную выборку из одного листбокса в другой, из первого при этом элементы...

7
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
19.05.2011, 17:08
Попробуй переписать текст iItem-строки вот так
C++
1
m_list1.SetItemText(int iItem,int iSubItem,LPCTSTR lpszText)
iSubItem - отвечает за столбец, вряд ли у тебя в программе их больше 1-го поэтому установи это значение 0,LPCTSTR lpszText - текст который ты хочешь вставить...
0
4 / 4 / 1
Регистрация: 11.11.2008
Сообщений: 66
20.05.2011, 12:09  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
m_list1.SetItemText(int iItem,int iSubItem,LPCTSTR lpszText)
Такая функция есть у класса CListCtrl, а я использую CListBox, такой там нет.

Добавлено через 17 часов 48 минут
решил проблему таким способом
C++
1
2
3
  CRect r;
  GetItemRect(nItem, r);
  InvalidateRect(r);
появилась новая..., мерцание при перерисовке
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.05.2011, 12:57
СListCtrl можно использовать как расширенный CListBox, который сожержит расширенный набор функций, в упрощённый режим СListCtrl можно перевести вот так
C++
1
m_list.ModifyStyle(LVS_TYPEMASK, LVS_LIST);
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.05.2011, 13:09
Итак подозреваю что тип листбокса в твоей проге єто CString.
Так вот когда выставишь его в окне Помощника на Control, то
сможешь легко юзать такие функции AddString, InsertString и
DeleteString

C++
1
2
InsertString(int Index, LPCTSTR sText);//вставляет sText в строку Index (при этом нужно обращать внимание на свойство CListBox : Sort)
DeleteString(UINT Index); //удаляет Index-строку
Вот проект по замене 1-й строки...
Миниатюры
Обновление строки CListBox  
Вложения
Тип файла: rar lstbox.rar (8.7 Кб, 16 просмотров)
1
4 / 4 / 1
Регистрация: 11.11.2008
Сообщений: 66
20.05.2011, 14:39  [ТС]
спасибо, твой вариант работает, как и мой:
C++
1
2
3
  CRect r;
  m_list.GetItemRect(nItem, r);
  m_list.InvalidateRect(r);
Теперь проблема с мерцанием, смотрится просто жуть .

Немного предыстории, почему я использовал CListBox а не CListCtrl. Есть список, что-то типа этого:

Название: Безымянный.jpg
Просмотров: 120

Размер: 5.9 Кб

формат такой:

Название: Документ1.jpg
Просмотров: 120

Размер: 10.3 Кб

Все это я вывожу в DrawItem, моя программа по Com - порту опрашивает некое устройство, соответственно в таблице я должен менять с определенной периодичностью данные, (иконку и его описание) номер строки, это номер параметра.

В инете нашел пример CListBox, как его подстроить под себя, хотел использовать CListCtrl, накопал кучу примеров, но там почему-то картинка или иконка, отображалась в первом столбце, а мне надо Текст [Иконка] [описание]. Убираешь отображение картинки, а он..., оставляет пустое место в начале колонки, потыкался помыкался, так и остановился на CListBox
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.05.2011, 19:51
Иконки очень легко рисовать в CListCtrl, вот скриншот работы одной из моих прог
Миниатюры
Обновление строки CListBox  
0
4 / 4 / 1
Регистрация: 11.11.2008
Сообщений: 66
21.05.2011, 00:04  [ТС]
Я согласен, формат [Иконка] [Текст] сделать легко, а вот наоборот, [Текст][Иконка] и еще, что бы этот формат можно было применить к любой колонки, толкового примера я не нашел.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.05.2011, 00:04
Помогаю со студенческими работами здесь

Прорисовка курсора в CListBox
Доброго времени суток! Есть приложение №1, которое запускает приложение №2. Приложение №2 отображает в CListBox различные логи. Иногда...

Вывод данных на CListBox
Всем привет. Необходимо вывести массив данных, состоящий из 5 элементов типа unsigned long, на CListBox. Для склеивания использую...

Как занести map в ClistBox
Как занести map в ClistBox? void ComPort::findPort(){ HANDLE hFile; CString b; for(int i=0;i<=100;i++){

error C2664: CListBox::AddString
Привет все. Вот сделал программу и не могу понять выдает вот такую ошибку: error C2664: CListBox::AddString: невозможно преобразовать...

CListBox удалить все записи
Здравствуйте! Подскажите вариант, как это можно сделать. Работаю в VS2010 Объект создается так: CListBox List; Записи...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru