Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ширина(высота) строки, Как скроллировать ListView по номеру стр 
:(
    Опции темы
brb
Дата 24.1.2003, 05:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Как скроллировать, например, ListView по номеру строки. Или, другими словами, как сосчитать в пикселах ширину(или высоту) строки.

Спасибо.
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
Vit
Дата 24.1.2003, 06:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



Может это через одно место, но можно так
1) создаём объект сanvas
2) присваиваем ему нужный фонт
3) используем методы TextHeight, TextWidth для определения размера текста в пикселях


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
brb
Дата 24.1.2003, 06:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А по-честному низзя? Через проперти фонта или как? Ну не должно так быть!
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
Vaulter
Дата 24.1.2003, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



либо через сообщение LVM_GETITEMRECT, либо через LVM_GETSTRINGWIDTH.
потом мона LVM_SCROLL
еще есть LVM_GETVIEWRECT - незнаю нужно, нет ;)


--------------------
PM MAIL WWW ICQ   Вверх
brb
Дата 24.1.2003, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



вышеперечисленных LVM_ в хэлпе не нашел. А нельзя ли привести приметивный пример?
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
Vaulter
Дата 24.1.2003, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



в MSDN? и не нашел? немогет быть =)
я за январь 2001 смотрел


--------------------
PM MAIL WWW ICQ   Вверх
Dagger
  Дата 25.1.2003, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Vit @ 24.1.2003, 03:01)
Может это через одно место, но можно так
1) создаём объект сanvas
2) присваиваем ему нужный фонт
3) используем методы TextHeight, TextWidth для определения размера текста в пикселях

В Билдере (и, верно, в Дельфи) есть свойство фонта ... типа, Comp->Font->Height и задается отрицательным числом (зачастую). Что бы это могло значить? В общем, я пробовал посчитать строки на основе координат курсора относительно даного компонента и значения Height (преобразовав его в положительное число), то соответствие в строках 100%-е. Или я в чем-то заблуждаюсь?


И подобный вопрос... Как можно узнать длину символа в пикселях?

Пасиба biggrin.gif
PM MAIL WWW Skype   Вверх
brb
  Дата 26.1.2003, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Borland C++Builder calculates Size using this formula:
Font->Size = -Font->Height * Font->PixelsPerInch / 72
Therefore, whenever you enter a positive value for the Height property, the font's Size property value changes to a negative number. Conversely, if you enter a positive value for the Size property, the font's Height property changes to a negative number. Positive Height includes the internal leading and negative excludes it.
Если я понял правильно, то ВЫСОТА строки в ПИКСЕЛАХ
Font->Height = -Font->Size * 72 / Font->PixelsPerInch
Игнорируем минус, т.к. мы не устанавливаем, а ВЫЧИСЛЯЕМ значение.
Так?
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
Guest
Дата 28.1.2003, 16:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Получилось! Пока вертикально. Попробуйте у себя эту эмпирическую формулу:
ListView->Scroll(0, indx * ((ListView->Font->Size+1)/2-ListView->Font->Height));
indx - номер строки для позиционирования.
Пожалуйста, поделитесь результатами.
  Вверх
Guest
Дата 28.1.2003, 16:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Получилось! Пока вертикально. Попробуйте у себя эту эмпирическую формулу:
ListView->Scroll(0, indx * ((ListView->Font->Size+1)/2 - ListView->Font->Height));
indx - номер строки для позиционирования.
Пожалуйста, поделитесь результатами.
  Вверх
Unregistered
Дата 28.1.2003, 16:10 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нонче все мы гости, обратите внимание, ВЕБанные мастера
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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