|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.06.2010, 11:32 | #1 |
Пользователь
Регистрация: 07.04.2010
Сообщений: 22
|
Поиск длины строки
Необходимо определить длину. Сейчас это выполняется с помощью функции:
m_Window->GetPoint(&left, &top, &width, &height, range). Ведется попытка определить размер с помощью: GetTextExtentPoint(hdc, text.c_str(), text.length(), &stringSize). Эти функции возвращают немного разные результаты. Причем на результат влияет шрифт и количество пробелов в строке. Наблюдения показали что word меняет длину пробела зависимости от символов которые стоят по обе стороны пробела. Есть предположение что это зависит от кернинг пар. Может кто нить подскажет алгоритм поиска длинны строки в word. Или особенности от которых она может меняться. |
21.06.2010, 11:48 | #2 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
А если так (длина строки, на которой стоит курсор)
Код:
Лучше день потерять — потом за пять минут долететь!©
|
21.06.2010, 12:06 | #3 |
Пользователь
Регистрация: 07.04.2010
Сообщений: 22
|
Хотелось бы вообще избавится от вызова com функциий word. Это связано в первую очередь с быстродействием.
|
21.06.2010, 12:14 | #4 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Тогда почему вопрос в раздел VBA?
Лучше день потерять — потом за пять минут долететь!©
|
21.06.2010, 12:25 | #5 |
Пользователь
Регистрация: 07.04.2010
Сообщений: 22
|
Да может раздел не совсем соответствует. Но собственно меня интересует сам алгоритм по которому word рассчитывает (или расставляет) расстояние между символами. Или в общем случае как word выбирает ширину символов. (подобно особенностям поиска междустрочного интервала зависимости от размера кегля). И возможно кто то с этим сталкивался. Может можно "заставить" word с помощью VBA не менять ширину символа.
|
21.06.2010, 14:27 | #6 |
Пользователь
Регистрация: 07.04.2010
Сообщений: 22
|
Из рисунка видно что размеры символов для word и для api DrawText одинаковы. Отличаются лишь расстояния между символами. Скорее всего такой эффект дают кернинг пары. Попытка их учитывать с помощью Api (GetKerningPairs) не дала результатов, скорее всего word дополняет таблицу kerningPairs или определяет свою.
Возможно ли, использую VBA, получить список kerningPairs word-a для определенного шрифта? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка строк:определение длины строки | DidT33rus | Помощь студентам | 6 | 14.05.2010 11:43 |
Строки неизвестной длины в си | abr_question | Общие вопросы C/C++ | 18 | 22.01.2010 00:26 |
Считывание строки неограниченной длины (Си) | 0kopok | Помощь студентам | 6 | 05.10.2009 20:46 |
Поиск цикла длины 4. | <Бананан> | Помощь студентам | 33 | 25.05.2008 20:10 |