![]() |
|
|
![]()
|
|
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
Создал класс, производный от CListBox. Создаю его так:
Create(WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|LBS_OWNERDRAWFIXED,CRect(0,0,10,10),this,IDM_LISTBOX); Дальше так:
Так вот сколько бы я не устанавливал в значении SetHorizontalExtent(хоть 10 хоть 10000) - результат тот же!!!! А именно, поле в котором выводится текст(список) всегда по моему одинакового горизонтального размера, и оно прокручивается с помощью горизонтальной прокрутки несмотря на то, какой размер задается в SetHorizontalExtent, даже когда текст с размером MaxChar полностью влазит в видимую часть этого поля. А прокручивать получается так далеко, что вообще все надписи могут исчезнуть. Здесь sz.cx/str.GetCount() - ширина одного символа, пока так (у меня есть конечно текст самой длинной надписи), в общем не это главное. Помогите сделать так, чтобы прокрутка осуществлялась только до конца моей самой длинной строки, плиз. -------------------- я не гольфист - я хоккеист |
|||
|
||||
| redpinguin |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 1.3.2006 Репутация: нет Всего: нет |
Допиши в класс лист бокса
2 функции
и перегрузи AddString
размеры сам подставь у меня с иконками был класс так что там везде +20 и больше |
||||||||
|
|||||||||
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
redpinguin, Вообщем добалил я в AddString SetHorizontalExtent() и заработало, видимо надо хоть раз оттуда было вызвать! Не понял правдо что за зверь GetTabbedTextExtent()?
Спасибо. -------------------- я не гольфист - я хоккеист |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Эта функция возвращает размер (ширину, высоту) заданной строки в соответствии со шрифтом, установленным в контексте, и с учетом табуляций. -------------------- ... |
|||
|
||||
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
Earnest,
мда, скорее всего с моими познаниями в аглицком до конца с параметрами "зверя" не разбирусь, но вот что у меня получилось: CPaintDC dc(this); // device context for painting
Однако..., стоит наверное использовать только GetTabbedTextExtent. Добавлено @ 13:40 CPaintDC dc(this); // device context for painting это в коде -------------------- я не гольфист - я хоккеист |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Два оставшихся параметра - это число позиций табуляции и массив позиций.
Чтобы все правильно считалось, нужно чтобы позиции табуляций совпадали с теми, которые установлены в листбоксе. Если ты сам ничего не устанавливал листбоксу, то скорее всего, все совпадает. Но если захочешь установить листбоксу другие позиции - придется и здесь их передавать. -------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |