DrawText и ТРИ мини проблемы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

DrawText и ТРИ мини проблемы

Сообщение Akella » 11.04.2005 (Пн) 7:45

Всем привет. у иеня ТРИ мини проблемы по DrawText, их суть в следующем:
1. как узнать ширину(Width) одной строкт (из нескольких строк) и количество символов в ней.
2. как узнать выходит ли текст (по высоте) за рамки ограниченной зоны.
3. как пролистеть текст внутри ограничивающей зоны.
Не бойся что не знаешь, бойся что не учишься.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.04.2005 (Пн) 8:13

1. См. справку по DrawText, в частности по флагу DT_CALCRECT.
2. Аналогично. Оно тебе посчитает, а ты сравни с исходным RECT.
3. Не понял :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 11.04.2005 (Пн) 12:00

Насчёт DT_CALCRECT:
Если строк несколько, подбирается нижняя граница, а правая остаётся такой, как была.
Если строка одна ( флаг DT_Singleline), подбирается правая граница, а остальное фиксируется.

Есть ещ1ё набор ф-й для ручного расчёта прямоугольника, исходя из конкретных букв. Сам пока их не применял из-за муторности.

А прокручивания никакого нет. Появляется оно только при редактировании метки, но в данном случае часто идёт работа совсем с другим контролом (текстовым полем) как в Listview.

Akella
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 15.09.2004 (Ср) 14:26
Откуда: Россия, Тюмень

Сообщение Akella » 11.04.2005 (Пн) 14:05

если в ограниченой зоне, а несколько строчек текста не влезают в эту область как сдвинуть текст
Не бойся что не знаешь, бойся что не учишься.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.04.2005 (Пн) 14:15

Сдвинуть как и куда?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 11.04.2005 (Пн) 16:34

Имеется в виду: "Можно ли автоматически вставить скроллбар"?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.04.2005 (Пн) 16:41

А как скроллить нарисованный текст? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 11.04.2005 (Пн) 16:48

:wink:

[off]Топики из одно смайлика - это же флуд? :lol:[/off]

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 11.04.2005 (Пн) 19:20

2 GSerg
А разве не весь текст, который мы видем - нарисованный? Просто в одном случае у нас есть еще возможность его редактирования (каректа), а в другом нет.
Тот же лист в Word'е - большой "Picturebox", в котором весь текст рисуется.

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 11.04.2005 (Пн) 21:58

2 xolod: Не поверишь, но в винде каретка тоже нарисованная - см. CreateCaret() / DestroyCaret(). Короче, вся жизнь в нарисованном мире. :)

Cryonyx
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 292
Зарегистрирован: 12.11.2004 (Пт) 15:40
Откуда: Net_SubStream

Сообщение Cryonyx » 11.04.2005 (Пн) 22:25

А кстати - вопрос в тему: как ворд реализует сам процесс редактирования текста, как унаёт, где какой символ расположен, если это всё нарисованное? :scratch:
Если тебе не по сердцу мой путь,
Выбери сам или выбери с кем,
А мне по барабану вся эта муть -
Я не червонец, чтобы нравиться всем!
© К.Кинчев
--
Мой блог: щёлкай сюда

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 11.04.2005 (Пн) 23:42

2 Ennor
Я пробовал писать редактор. Так что о CreateCaret знаю.
А вообще, я к тому и говорил, что все рисованное, так что скролить все-равно придеться рисунок :)

2 Cryonyx
Можно конечно выводить предположения, строить доводы. Но как на самом деле - все равно не узнаешь.
Хотя общие принципы просты до безобразия. Но приличную скорость работы программы (когда сам пытался textedit написать) так и неполучил.
Вообщем, Word, он на то и Word. Если бы все было так просто, Microsoft'ов развелось не один десяток.

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 187

    TopList