FAQ:WinAPI VCPP:определить ширину и высоту текста при выводе на контекст устройства
Материал из Весельчак У
Как при выводе текста на контекст устройства определить ширину и высоту выведенных символов текста в пикселах?
Для этого нужно использовать процедуру API:
BOOL GetTextExtentPoint32(
HDC hdc, // хендл контекста
LPCTSTR lpString, // выводимая строка
int cbString, // длина строки в символах
LPSIZE lpSize // указатель на структуру SIZE, куда будут помещены размеры
);
Функция вычисляет ширину строки символов, оканчивающейся нулём. Поэтому, чтобы вычислить габариты многострочного текста, текст, в начале, необходимо разбить на строки, разделённые символами '\r' и '\n', и определить ширину и высоту каждой отдельно взятой строки.