nick7inc

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору marklar Цитата: Excel ведь чем-то руководствуется, когда слова в ячейке на следующую строку переносит. | Думаю, что он руководствуется только шириной конкретных символов. Под Win я не программировал, но в Allegro (библиотека для C++) есть подобные функции для вычисления ширины строчки из символов (или конкретных знаков) в пикселях , думаю, что в Windows аналогично сделано. Проблема в том, что есть шрифты, которые имеют фиксированную ширину знака, а есть шрифты с переменной (видно, если сравнивать точки и запятые с какими-нибудь большими буквами типа Щ Ю W). Мои варианты: 1)Вам, IMHO, проще взять шрифт с фиксированной шириной знаков (Courier New, если не ошибаюсь) и тогда вычислять ширину знаков вам не составит труда. У кажного знака ширина будет постоянна, её можно в какую-нибудь константу записать. 2)Либо (ну уже совсем в качестве бредовой идеи), надо измерять ширину знаков непрямым методом (будет медленно), например, создавая из надписи картинку (копировать надпись или текст, Вставить как рисунок, измерить ширину объекта-рисунка). Так вы можете сделать таблицу, в которой будут приведены хар-ки всех знаков какого-нибудь шрифта заданного размера, чтобы потом их можно было использовать в программе. 3) Копать в сторону WinAPI, искать функцию, которая бы вам посчитала ширину знака прямым методом.
---------- Джин, не лезь в бутылку. |
| Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 12:58 26-10-2008 | Исправлено: nick7inc, 13:07 26-10-2008 |
|