Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
5 / 5 / 4
Регистрация: 01.06.2014
Сообщений: 55

Обновление CListBox

14.06.2014, 20:12. Показов 624. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть класс окна в котором объявлены CListBox и контейнер с элементами. О существовании друг друга они не знают. Периодически элементы из контейнера удаляются/добавляются. А в листбоксе должна выводится информация о существующих элементах. Как мне производить обновление CListBox?

Была идея с таймером, который должен был запускать каждые 0,5 секунд функцию, в которой перебирались элементы контейнера и добавлялись в лист. Но и с ним что-то не срослось.

Добавлено через 16 минут
C++
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
VOID CALLBACK CProgramRunnerDlg::UpdateTaskList(
    LPVOID lpArg, DWORD dwTimerLowValue, DWORD dwTimerHighValue)
{
    UNREFERENCED_PARAMETER(lpArg);
    UNREFERENCED_PARAMETER(dwTimerLowValue);
    UNREFERENCED_PARAMETER(dwTimerHighValue);
 
 
    this->taskListBox.ResetContent();
    std::for_each(this->taskContainer.tasks.begin(), this->taskContainer.tasks.end(),
        [this](const RunData &data){ this->taskListBox.AddString(data.pathToFile); });
 
}
void CProgramRunnerDlg::InitMembers()
{
    RunData data;
    this->updateTimer = CreateWaitableTimer( NULL, FALSE, TEXT("UpdateTimer"));
    if (this->updateTimer == NULL)
        MessageBox(L"Fuuuuuuuuuuuuck");
    LARGE_INTEGER time;
    time.QuadPart = 1000000 * -1;
    BOOL success = SetWaitableTimer(this->updateTimer, &time, 500, this->UpdateTaskList , NULL, FALSE);
    if (success)
        SleepEx(INFINITE, TRUE);
}
При попытке компиляции выбивает это
error C3867: CProgramRunnerDlg::UpdateTaskList: в вызове функции отсутствует список аргументов; используйте "&CProgramRunnerDlg::UpdateTaskList" для создания указателя на член


Я так понял нельзя передать в качестве колбека указатель на член класса

Добавлено через 1 час 4 минуты
Разобрался с проблемой таймера. нельзя передавать в функцию SetWaitableTimer в качестве колбека указатель на не статический член класса, так как первым параметром туда должен передаваться указатель на объект.

НО проблема не решилась: листбокс не обновляется.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.06.2014, 20:12
Ответы с готовыми решениями:

Обновление строки CListBox
Добрый день! Как программно обновить элемент строки CListBox что бы сгенерировалось событие DrawItem. Invalidate или UpdateData не...

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

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.06.2014, 20:12
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru