Мне нужно напечатать данные из многих строк. Каждая строка может иметь перенос текста, поэтому высота меняется. Чтобы сделать прокрутку, мне нужно вывести общую высоту. Поскольку каждая строка может иметь различную высоту, я могу только go через каждую строку сложить высоты, как показано ниже.
void CMyScrollView::OnInitialUpdate()
{
...
for (auto &l: lines)
{
DrawText(dc, l.text, &rc, DT_EDITCONTROL | DT_WORDBREAK | DT_CALCRECT);
total_height += rc.Height();
}
SetScrollSizes(MM_TEXT, CRect(..., total_height));
}
Я обнаружил, что DrawText (... DT_CALCRECT) "довольно дорого даже без фактического рисунка. Есть ли способ ускорить процесс в таком случае?