Форум: "WinAPI";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];
Внизразрядить строки в DrawText Найти похожие ветки
← →
Dmitry S © (2008-04-20 00:11) [0]Вывожу текст с помощью DrawText (с DT_WORDBREAK).
Есть какая либо возможность разрядить строки на нужное мне количество точек (логических единиц устройства)?
У меня пока два варианта: 1. Отказаться от DT_WORDBREAK: добиваться эффекта переноса вручную.
2. Выводить текст сперва в метафайл, а затем уже копировать по частям в данный DC.
← →
Eraser © (2008-04-20 01:01) [1]> [0] Dmitry S © (20.04.08 00:11)
т.е. задача - сделать выравнивание по ширине?
советую глянуть в сторону уже реализованых примеров. не помню, есть ли такое в TRichView.. возможно есть.
← →
Dmitry S © (2008-04-20 01:04) [2]Нет. Задача "растянуть" текст по ветикали: добавить межстрочный интервал.
Аналог "полуторного интервала" в Wordе.
← →
Eraser © (2008-04-20 01:16) [3]> [2] Dmitry S © (20.04.08 01:04)
тейксейра, пачеко "Руководство разработчика Delphi 5", 1 том. Там есть глава про шрифты. книга есть на сайте у Анатолия Подгорецкого.
PS см. TLogFont.
← →
Dmitry S © (2008-04-20 01:19) [4]
> PS см. TLogFont.
Тут ничего про межстрочный интервалtypedef struct tagLOGFONT { // lf
LONG lfHeight; <-- высота символов (размер шрифта)
LONG lfWidth;
LONG lfEscapement;
LONG lfOrientation;
LONG lfWeight;
BYTE lfItalic;
BYTE lfUnderline;
BYTE lfStrikeOut;
BYTE lfCharSet;
BYTE lfOutPrecision;
BYTE lfClipPrecision;
BYTE lfQuality;
BYTE lfPitchAndFamily;
TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT;
← →
Eraser © (2008-04-20 01:31) [5]
lfHeight
Specifies the height, in logical units, of the font"s character cell or character. The character height value (also known as the em height) is the character cell height value minus the internal-leading value. The font mapper interprets the value specified in lfHeight in the following manner.
думаю с этим подробнее разобраться надо.
← →
Dmitry S © (2008-04-20 01:37) [6]
> Eraser ©
Вы серьезно думаете, что это то, что нужно?
По-моему, lfHeight задает только высоту символов.
← →
Eraser © (2008-04-20 02:01) [7]мне проверять лень, но ведь английским по белому написано, что 2 параметра задавать можно.
← →
{RASkov} © (2008-04-20 02:46) [8]Имхо... ЛогФонт здесь поможет мало.... меньше чем функция ДравТекст....
Т.е. из [0] первый вариант. Помоему не сложно реализовать...
N:=DrawText(...., R, ... or DT_MODIFYSTRING);
INC(R.Top, N+J);
J - межстрочный интервал, расчитать тоже не проблема...
R - Rect(область) соб-сно вывода одной строки, которая(выведенная строка, часть текста) вычитается из всего выводимого текста...
Что-то в этом плане должно получится....
← →
Dmitry S © (2008-04-20 10:43) [9]
> мне проверять лень, но ведь английским по белому написано,
> что 2 параметра задавать можно.
Перевожу как понимаю: Высота ячейки символа или символа (в логических единицах). Значение высоты символа (также известного как EM-высота - это высота ячейки символа с вычетом внутреннего интервала. Font mapper понимает значение lfHeight следующим образом: (и дальше рассказывается для чего отрицательные и положительные значения...).
Внутренний интервал пространство где, например, находятся точки у буквы Ё.
Ничего не сказано про то, что в lfHeight можно запихать два параметра.
> {RASkov} © (20.04.08 02:46) [8]
Это очень интересно. Сейчас попробую, о результатах доложу:)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2009.04.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.058 c