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