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

Автоматический размер колонки ListView

28.11.2013, 03:14. Показов 1732. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
static LV_COLUMN lvc;
при изменении размера диалога шлется WM_SIZE, где я определяю размер диалога и по его ширине подганяю lvc.cx=width списка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  case WM_SIZE:
    {
      RECT rect;
 
      GetWindowRect(hwnd,&rect);
      int width=rect.right-rect.left;
      int height=rect.bottom-rect.top;
 
      lvc.cx=width;
 
      ShowWindow(hWndList, SW_HIDE);
      MoveWindow(hWndList,
        dx,dy,
        width-dw,height-dh,
        true);
      ShowWindow(hWndList, SW_SHOW);
      //MessageBox(NULL, TEXT("RESIZE!"), TEXT("RESIZE"), MB_OK);
     //SetWindowPos(hWndList,0,0,0,width,height,SWP_DRAWFRAME );//SWP_NOMOVE|SWP_NOZORDER|SWP_NOACTIVATE
    }
    return TRUE;
в WM_INITDIALOG делаю тоже
C++
1
2
3
4
5
6
7
8
9
10
case WM_INITDIALOG:
    {
RECT rect;
      GetWindowRect(hwnd,&rect);
 
      int width=rect.right-rect.left;
      int height=rect.bottom-rect.top;
      lvc.cx=width 
...
}
при старте программы ширина колонки соответствует ширине диалога
при ресайзе нет... как поправить?

Добавлено через 25 секунд
C++
1
hwnd
дескриптор диалога

Добавлено через 5 минут
в
C++
1
WM_SIZE
добавил:
C++
1
2
3
4
5
6
7
8
      ZeroMemory(&lvc,sizeof(lvc));
      
      lvc.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;
      lvc.fmt=LVCFMT_LEFT;//выравнивание
      
      lvc.cx=width-dw;
      lvc.pszText=TEXT("123");
      ListView_InsertColumn(hWndList, 0, &lvc);
Добавлено через 1 минуту
good.

Добавлено через 22 минуты
не гуд
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.11.2013, 03:14
Ответы с готовыми решениями:

Данные в колонки ListView
Здравствуйте..Столкнулся с такой проблемой...Имеется компонент listview с несколькими колонками...Требуется ее заполнить..Заполнить первые...

Запись в существующие колонки ListView
Ребят, ещё один вопрос, голову уже ломаю не пойму как делать. В ListView три колонки: Имя, Баллы, Причина 1. Гружу текстовый файл и...

Почему автоматический размер колонки режет текст в ячейках?
Простой пример: Sub Macro1() Cells(1, 1).Select ActiveCell.Value = "666.01" Selection.NumberFormat =...

7
87 / 86 / 27
Регистрация: 04.10.2012
Сообщений: 355
28.11.2013, 03:22
C++
1
lvc.cx = -1;
Тогда колонка сама на всю длину растянется.
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
28.11.2013, 04:20  [ТС]
как определить текущий размер колонки? (ширину)
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
28.11.2013, 05:06  [ТС]
Цитата Сообщение от mytilus Посмотреть сообщение
C++
1
lvc.cx = -1;
Тогда колонка сама на всю длину растянется.
ростянется но названия я колонки не видно...
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
28.11.2013, 05:42  [ТС]
123

Добавлено через 15 минут
возможно ли прикрутить к чистому api wtl?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
28.11.2013, 12:16
Цитата Сообщение от slipp1 Посмотреть сообщение
но названия я колонки не видно...
Вот так - все нормально видно:

C++
1
2
3
4
5
6
7
    case WM_SIZE:
        RECT rect;
        GetClientRect(hwndDlg, &rect);
        SetWindowPos(m_hwndLV, 0, 0, 0, rect.right, rect.bottom, SWP_NOZORDER);
 
        ListView_SetColumnWidth(m_hwndLV, 3, -2);
        break;
Миниатюры
Автоматический размер колонки ListView  
1
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
28.11.2013, 18:46  [ТС]
при перемещении границы колонки появляется еще одна пустая колонка (см. вложении)...
пытаюсь бороться с этим так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
case WM_NOTIFY:
    {
      switch (((LPNMHDR)lParam)->code)
      {
      case HDN_ENDTRACK:
        {
          ListView_SetColumnWidth(hWndList, 3, -2);            
        }
        break;
      case ....
      }//switch (((LPNMHDR)lParam)->code)
    }//WM_NOTIFY
- при перемещении границы влево граница новой колонки остается.
- если из того же положения потянуть вправо она исчезает и последняя колонка подтягиается под ширину таблицы

как поправить
Миниатюры
Автоматический размер колонки ListView   Автоматический размер колонки ListView  
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
28.11.2013, 18:56  [ТС]
потянуть вправо (на незначительное расстояние)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.11.2013, 18:56
Помогаю со студенческими работами здесь

ListView Колонки и занисение данных в колонки
Здравствуйте... Я установил VIEW на Ditailes.. Теперь есть проблема - Я могу полностью заполнить таким действием - ...

Автоматический размер
Я пытаюсь создать свой usercontrol,и мне надо чтобы rectangle всегда был равен размеру формы,как Gird в самом окне,так вот как это...

listview колонки
Компонент listview - как в нём добавить текст во вторую и третью колонки? Можно пользоваться subitems.add для второй колонки, но...

Колонки в listView
Добрый день, у меня уже есть колонки в которые нужно уже записать айди, имя, фамилию и т.д если оставить так как есть то оно...

Автоматический размер iframe
Как сделать размер (высоту) iframe автоматической, т.е. без скролла и чтобы страница отображалась полностью?


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
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 и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере 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 На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru