Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как в ListCtrl сделать динамический ресайз колонок 
V
    Опции темы
AndreySol
Дата 22.5.2008, 05:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: 1
Всего: 1



Есть ListCtrl в стиле Report. Как сделать динамическое изменение ширины колонки при добавлении в эту колонку итема, у которого текст будет длинее ширины колонки ? Точнее, как изменить ширину колонки это понятно, а вот как вычислить ее относительно длины текста ?
Хотя-бы в общих чертах ?
PM MAIL   Вверх
deniska
Дата 22.5.2008, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 1.7.2005
Где: Троицк

Репутация: 1
Всего: 0



Чтоб вычислить длину текста в пикселях:
создать контекст для рисования, выбрать в него(CDC::SetFont()) шрифт твоего CListCtrl (CListCtrl::GetFont).
получить размер текста в пикселях CDC::DrawText(..,..,DT_CALCRECT). дальше если надо к длине полученного прямоугольника добавляешь размер отступа текста от краев столбца. так можно получить нужную ширину столбца. может можно как то еще...  
PM MAIL ICQ   Вверх
Earnest
Дата 22.5.2008, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Все вышеперечисленное делает готовая функция CListCtrl::GetStringWidth 


--------------------
...
PM   Вверх
AndreySol
Дата 10.6.2008, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 772
Регистрация: 19.6.2004

Репутация: 1
Всего: 1



Спасибо, чевой-то не подумал, что может быть такая ф-ция класса.
PM MAIL   Вверх
serg405
Дата 12.6.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 12.6.2008

Репутация: нет
Всего: нет



Мне нужно разрисовать ListCrtl в котором остоянно меняютса значения с большой скоростю. Все было бы хорошо но почемуто проскакивает фон самово контрола при каждом изминении даных и получаетса сильное мигание текста. Как устранить мигание?
PM MAIL   Вверх
Earnest
Дата 16.6.2008, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



А как же: чтобы нарисовать, нужно сначала стереть. Чтобы не мерцало, путь один - через внеэкранный буфер... Была где-то темка от Dreamer про что-то похожее, поищи.


--------------------
...
PM   Вверх
alviro
Дата 25.6.2008, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 18.4.2008

Репутация: нет
Всего: нет



Помогите, пожалуйста! Нужно создать таблицу, к ячейкам которой должен быть доступ. То есть пользователь должен просто иметь возможность выбирать данные, кликая по ним. Использую List Control. Таблица заполняется, но только первый столбец дает возможность по нему щелкать. Думаю, что неправильно заполняю.  Есть вообще такая возможность у CListCtrl?
PM MAIL   Вверх
Earnest
Дата 26.6.2008, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Заполняешь ты, скорее всего, правильно. Но стандартный лист-контрол умеет редактировать только первую колонку. И выбирать только целую строку. Чтобы выделить всю строку, а не только первый элемент, используй расширенный стиль LVS_EX_FULLROWSELECT.
Но это все же не таблица. Чтобы превратить лист-контрол в полноценную таблицу, нужно много чего написать руками.
Посмотри на codeproject, там есть примеры таблиц как на основе лист-контрола, так и с нуля.
И впредь создавай свою тему.



--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.1041 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.