strcpy(lf.lfFaceName, "Times New Roman");
lf.lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);
// Это если у вашего hDC mapping mode имеет значение MM_TEXT.
Шрифти или использование ttf файла
Как заполнить все параметры структуры LOGFONT так чтобы, например шрифт был Times New Roman размер 12.
Или как взять все параметры с файла шрифта windows "times.ttf"?
Цитата: AVDEY
Как заполнить все параметры структуры LOGFONT так чтобы, например шрифт был Times New Roman размер 12.
Приблизительно так
Код:
Ну а если hDC mapping mode имеет значение MM_LOMETRIC. тогда как быть?
так же
И срзу же вопрос: Как расчитать междустрочний интервал?
И какая должена быть висота прямоугольника в которий должен поместиться текст?
lfWidth обычно 0, читай MSDN. Можешь поэкспериментировать если тебе нужно что-то иное.
Есть такая функция ChooseFont(), она заполнит тебе эту структуру параметрами "по-умолчанию" выбранного шрифта.
Еще почитай про Get/SetTextMetrics.
Код:
SetMapMode(hdc,MM_LOMETRIC);
lf.lfHeight = -MulDiv(PointSize, 254/*переводим из дюйма в 0.1 мм*/, 72);
lf.lfHeight = -MulDiv(PointSize, 254/*переводим из дюйма в 0.1 мм*/, 72);
Правда с межстрочными интервалом еще не разобрался.
И как попроще вписать текст в таблицу?
В смысле текст в таблицу? В ячейку таблицы?
Ну в смысле текс что бы бил вписан в ячеки таблицы. Ну если текст в ячейке не помещается одной строкой, тогда что б вся строка таблицы раздвигалась на две строчки.
Тесть что бы рамки таблицы подгонялись автоматически по содержимому ячейки.
Как? Ну либо считать ячейки символов самому определяя возможные переносы, либо пользоваться функциональностью DT_CALCRECT, если это приемлимо.