Как узнать реальную ширину символа?

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

Как узнать реальную ширину символа?

Сообщение arthur2 » 14.04.2010 (Ср) 17:34

Столкнулся с такой проблемой: нужно узнать реальную ширину символа.

Дело в том, что многие символы фактически рисуются шире, чем сообщает о них GetTextExtentPoint32: у одних, типа Щ, есть выносные элементы, другие, типа ударения, и вовсе с нулевой шириной, чтобы накладываться на следующий знак.
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как узнать реальную ширину символа?

Сообщение Хакер » 14.04.2010 (Ср) 18:23

Зачем?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как узнать реальную ширину символа?

Сообщение arthur2 » 14.04.2010 (Ср) 19:33

Скажем, есть слово на каком-нибудь хитром санскрите, где символы накладываются друг на друга или изменяют написание рядом стоящих символов. Нужно вывести слово как есть (это понято) и отдельно - посимвольно, без слипания, чтобы видно было, из чего слово состоит фактически.
संस्कृत

स ं स ् क ृ त
(только чтобы между символами не пробелы были, а то они слишком далеко друг от друга)

Ещё - чтобы знать rect символа, который нужно обновить при перерисовки окна (а то при смене символа остаются следы от выносных элементов предыдущего). Эту проблему я, правда, "решил", просто вдвое увеличив рект обновления символа.
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как узнать реальную ширину символа?

Сообщение Хакер » 14.04.2010 (Ср) 20:02

Смотри кернинговые пары.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как узнать реальную ширину символа?

Сообщение arthur2 » 14.04.2010 (Ср) 20:13

Кернинговые пары
* Специальная таблица, куда занесены все буквенные пары, для которых кернинг проводится автоматически. Эту таблицу можно вызвать, если вы хотите изменить кернинг в печатном издании.
И как её вызвать? Где её взять? Или это не то?
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как узнать реальную ширину символа?

Сообщение Хакер » 14.04.2010 (Ср) 20:26

—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как узнать реальную ширину символа?

Сообщение arthur2 » 14.04.2010 (Ср) 21:51

Спасибо :)
Но мне подошла GetCharABCWidths
Вопрос решен :)
Артур
 
   


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

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

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 66

    TopList