I3D3XFont :: DrawTextW - Расширение вкладок неправильно? - PullRequest
0 голосов
/ 04 декабря 2009

Мне интересно, если это проблема с I3D3XFont::DrawTextW, я передаю ей строку с \t, которая расширяется. Однако, это не всегда делает это правильно. Если я распечатаю ту же строку, которую передал ей, вкладки будут развернуты правильно. Например,

dxfont->DrawTextW(NULL, msg, wcslen(msg), &textbox,
        DT_LEFT | DT_TOP | DT_EXPANDTABS, D3DCOLOR_ARGB(255, 180, 180, 180));

Где сообщение создается с помощью:

swprintf_s(temp, sizeof(temp), L"%s\t\t\t\t%i\t\t%i\t\t%s\t\t%i\n",
        pList[x].name.c_str(), pList[x].kills, pList[x].deaths, wratio,
        pList[x].suicides);

Который при выводе на консоль выглядит как:

Bamrow<4x tab>0<2x tab>0<2x tab>N/A<2x tab>2

Но DrawTextW отображает его как

Bamrow<5x tab>0<2x tab>0<2x tab>N/A<2x tab>2

Кто-нибудь еще имел эту проблему и / или знает решение?

1 Ответ

0 голосов
/ 04 декабря 2009

Эй, прости. Починил это. Мне нужно было соотнести вкладки в зависимости от длины слова в пикселях, а не от количества символов. GetTextExtent32W сделал свое дело.

...