Окт 14

Получение информации о выбранном физическом шрифте

После того как логический шрифт выбран в контекст устройства, приложение может получить дополнительную информацию о подобранном физическом шрифте и его метриках.
Функция GetTextMetrics, позволяющая выполнить эту задачу, уже рассматривалась ранее.
Но можно использовать и другую функцию, прототип которой приведен ниже:
int GetTextFace(HDC hDC. int nCount. LPTSTR "IpFaceName);
Эта функция получает имя гарнитуры физического шрифта. Оно может отличаться от имени гарнитуры, которое было задано в структуре LOGFONT. Искомое имя в виде строки с завершающим нулевым символом записывается в символьный буфер с адресом IpFaceName. Длина буфера (количество символов) определяется параметром nCount. В случае успешного завершения функция возвращает количество символов, скопированных в буфер, включая и завершающий нулевой символ. В случае ошибки возвращается нулевое значение. Функцию GetTextFace можно вызвать, указав на месте третьего параметра значение NULL. В этом случае она просто вернет количество символов в имени гарнитуры.
Функция GetTextCharSet(HDC hDC) возвращает идентификатор набора символов для текущего шрифта, выбранного в контекст устройства.
Есть и другие функции для получения дополнительной информации о текущей реализации физического шрифта, к которым относятся GetFontLanguagelnfo, GetTextCharSetlnfo и GetOutlineTextMetrics. Они используются при нетривиальном форматировании текста, например при непосредственной работе с глифами.