Есть окно, которое выводит конвертированную переменную int в строку, и все это повторяется в цикле (Должно быть 10 строк одной под другой). Код выглядит так:
RECT rc;
HDC dcc = GetDC(global::hwndGeneral);
GetClientRect(global::hwndGeneral, &rc);
SetBkMode(dcc, TRANSPARENT);
SetTextColor(dcc, RGB(0, 0, 255));
for (int i = 0; i < 10; i++)
{
std::string x1 = std::to_string(math::vectorline[i].x1);
std::string y1 = std::to_string(math::vectorline[i].y1);
std::string x2 = std::to_string(math::vectorline[i].x2);
std::string y2 = std::to_string(math::vectorline[i].y2);
std::string n = std::to_string(i);
std::string hd = n + " Line: A(" + x1 + "," + y1 + ") B(" + x2 + "," + y2 + ") ; ";
TCHAR* b = 0;
b = new TCHAR[hd.size() + 1];
copy(hd.begin(), hd.end(), b);
b[hd.size()] = 0;
DrawText(dcc, (LPCWSTR)b, -1, &rc, DT_MODIFYSTRING | DT_PATH_ELLIPSIS);
//DrawText(dcc, (LPCWSTR)intToCHAR(math::vectorline[0].x2), -1, &rc, DT_MODIFYSTRING | DT_PATH_ELLIPSIS);
}
ReleaseDC(global::hwndGeneral, dcc);
Но проблема в том что текст лепится один поверх другого, и соответственно в конце ничего не понятно. Добавление символа переноса строки в массив TCHAR* b (b[hd.size()] = '\n') тоже не дает результата. Какие есть методы переноса строки в функции DrawText() ?
Сначала сделайте одну длинную строку с переносами, затем отрисуйте ее все одним вызовом DrawText. Как вариант, можно модифицировать rc, добавляя отступ сверху на каждой итерации.
Куча промежуточных строк не нужны. Динамически выделять b (который кстати потом не освобождается) не следует, как не следует и кастовать (LPCWSTR)b
Продвижение своими сайтами как стратегия роста и независимости