Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1

обновление списка

20.11.2013, 21:08. Показов 1292. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
26
27
28
29
30
31
32
33
34
35
static HWND hWndList;//дескриптор списка
int WINAPI WinMain(HINSTANCE hlnst,HINSTANCE,LPSTR,int)
{
  ... 
  try
  {
    boost::thread search(directory_traversal, p);//запускаю поток поиска, заполняю контейнер с результатами.
 
    DialogBox(hlnst, MAKEINTRESOURCE(IDD_DIALOG), NULL, DlgProc);//рисую диалог
    search.join();//жду выполнения
  }
  catch(const filesystem_error&)
  {
    MessageBox(NULL, TEXT("ERRORRRRR"), TEXT("Error"), MB_OK);
  }
  //питаюсь обновить содержимое списка! Безрезультатно:
  ListView_RedrawItems(hWndList, 0, directory.size()-1);
  UpdateWindow(hWndList);
  return 0;
}
//диалоговая процедура где инициализирую hWndList и т. п.
BOOL CALLBACK DlgProc(HWND hwnd,UINT msg, WPARAM wParam,LPARAM lParam)
{
  switch(msg)
  {
  case WM_INITDIALOG:
    {
      //инициализирую hWndList!, создаю список.
      hWndList= CreateWindowEx(0, WC_LISTVIEW, NULL,
        WS_CHILD|WS_BORDER|WS_VISIBLE|LVS_OWNERDATA|LVS_REPORT,
        20, 20, 670, 300, hwnd, NULL, hInstance,NULL);
    ...
    }
    ....
}//DlgProc
вопрос:
- почему нет обновления содержимого списка в WinMain.
- правилен ли ход моих мыслей и действия по обновлению списка?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2013, 21:08
Ответы с готовыми решениями:

Обновление выпадающего списка при раскрытии
Есть список с аудиоустройствами. До того как на него нажали и он раскрылся нужно обновить все устройства. Как отловить этот момент,...

Обновление списка после обновления другого списка
У меня есть таблица следующего вида : Наименование(список) , количество , стоимость. Но из-за большого перечня товаров приходится...

Обновление выпадающего списка в форме в зависимости от выпадающего списка выше
Есть 3 таблицы (1,2,3) Первая и вторая связаны между собой через таблицу 3. Есть 3 выпадающих списка в Form1. Нужно что бы во втором...

5
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
20.11.2013, 21:20
Цитата Сообщение от slipp1 Посмотреть сообщение
//рисую диалог
Не "рисую диалог", а "создаю модальный диалог, пока не закрою который, выполнение дальше не пройдет":
DialogBox does not return control until the specified callback function terminates the modal dialog box by calling the EndDialog function.
А когда пройдет - уже поздно что-либо обновлять, списка уже нет, как и диалога. Теперь причина понятнее? Все действия с контролами, находящимися на диалоге, должны производиться в DlgProc.
1
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
20.11.2013, 21:39  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Не "рисую диалог", а "создаю модальный диалог, пока не закрою который, выполнение дальше не пройдет":


А когда пройдет - уже поздно что-либо обновлять, списка уже нет, как и диалога. Теперь причина понятнее? Все действия с контролами, находящимися на диалоге, должны производиться в DlgProc.
получается это:
C++
1
boost::thread search(directory_traversal, p);//запускаю поток поиска, заполняю контейнер с результатами.
нужно переместить в DlgProc...
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
20.11.2013, 21:52
search.join() - тоже... Ну, и обновление списка...
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
20.11.2013, 23:03  [ТС]
как вариант расматриваю подцепить на кнопку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
case WM_COMMAND:
    {
      switch(LOWORD(wParam))
      {
      case IDOK:
      case IDCANCEL:
        {
        EndDialog(hwnd,0);
        }
        break;
      case IDC_START:
        {
          path p="C:\\Windows\\";
          directory_traversal(p);
          ListView_RedrawItems(hWndList, 0, directory.size()-1);
          UpdateWindow(hWndList);
        }
        break;
      }
    }
    return TRUE;
но результата ноль.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
20.11.2013, 23:36
ListView_SetItemCount забыл установить, виртуальный список не знает своего размера...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.11.2013, 23:36
Помогаю со студенческими работами здесь

Обновление списка
База данных клиентов стоматологии. Для регистрации клиента и оказанных ему услуг (стом. операций), подсчета стоимости. Такая вот...

Обновление списка БД
Есть программа для работы с бд, и вот вопрос, к примеру имеем строки 1,2,3... когда одну из строк удаляю, к примеру строку с нумерацией -2,...

Обновление списка
Хочу сделать так,чтобы после добавления элемента в список, в следующих операциях со списком использовался именно новый список, т.е чтобы...

обновление списка
Делаю типа читалки твитера (stroyboard) , отправляю запрос заполнения таблицы ...

Обновление памяти списка
При нажатии на кнопку <ul> <li>1</li> <li>2</li> <li>3</li> </ul> ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru