1) Подготовка
- ищем самую длинную строку - на неё будем равняться
- выясняем ширину пробела (GetTextExtentPoint32)
2) Для каждой строки:
- ищем пробелы и добавляем их позиции в список
- к каждому пробелу из списка по очереди добавляем ещё пробел пока не будет ровно или перебор по длине
- если перебор - отменяем последний пробел
Это общий алогритм, а для моноширинных фонтов (Courier New etc) можно упростить, пользуясь не понятием пиксельной длины строки, а буквенной, тогда GetTextExtentPoint32 нам и не нужОн.