C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Работа с графикой.
DarkStar
Отправлено: 03.10.2004, 16:50


Ученик-кочегар

Группа: Участник
Сообщений: 20



Все работали с Word, каждый видел что буквы различного размера находятся на одной линии.
Теперь вопрос. Как рассчитать эту высоту для букв различного размера в Buildere, а может эти данные можно где-то прочитать из системы?. Я получил кое-кокой результат, но на некоторых размерах буквы прыгают друг от друга на один пиксель. Впринципе вполне удовлетворительно, но все же хотелось бы сделать так как в ворде. Может кто знает как это сделать.
Valdemar
Отправлено: 04.10.2004, 09:44


Мастер участка

Группа: Участник
Сообщений: 433



Высоту букв в пикселях можно определить с помощью TCanvas::TextHeight.
DarkStar
Отправлено: 04.10.2004, 19:45


Ученик-кочегар

Группа: Участник
Сообщений: 20



Это не чистая высота буквы.
Может я плохо объяснил что мне надо, постараюсь нарисовать smile.gif
______
______
__000_
_0__0_
_0000_
_0__0____
______ \ Вот эту величину мне надо определить.
_________/
Хлор
Отправлено: 05.10.2004, 02:05


Дежурный стрелочник

Группа: Участник
Сообщений: 78



Рисуешь здорово biggrin.gif
DarkStar
Отправлено: 05.10.2004, 18:26


Ученик-кочегар

Группа: Участник
Сообщений: 20



Я старался, но ответа на вопрос так и не нашел.
Valdemar
Отправлено: 06.10.2004, 08:16


Мастер участка

Группа: Участник
Сообщений: 433



Посмотрите структуру TEXTMETRIC. Она содержит информацию о шрифте. Ее поле tmExternalLeading задает промежуток между верхним и нижним краем соседних строк.
В книге "Создание переносимых приложений для Windows", авторы У. Мюррей, К. Паппас, есть глава посвященная шрифтам. Советую почитать, если найдете книгу.
DarkStar
Отправлено: 08.10.2004, 00:32


Ученик-кочегар

Группа: Участник
Сообщений: 20



Пасибо, а где эту структуру искать? В Helpе я не нашел sad.gif
Valdemar
Отправлено: 08.10.2004, 07:55


Мастер участка

Группа: Участник
Сообщений: 433



Напишите TEXTMETRIC, поставьте на него курсор и нажмите F1. Либо ищите в MS SDK Help Files, если вы их инсталировали.

Вернуться в Вопросы программирования в C++Builder