views:

92

answers:

1

I'm wondering if it's an issue with I3D3XFont::DrawTextW, I pass it a string with \t in it, which it expands. However, it doesn't always do it correctly. If I print the same string that I pass to it, the tabs are expanded correctly. For example,

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

Where msg is created via:

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);

Which, when printed to console comes out as:

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

But, DrawTextW displays it as

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

Has anyone else had this issue and/or knows a solution?

A: 

Hey, sorry. Fixed it. I needed to ratio the tabs based on the pixel length of the word, not how many characters there are. GetTextExtent32W did the trick.

DirectXFag