Pregunta

I can draw a string literal via DrawText():

DrawText (hdcWindow, "abc123", -1, &rc, DT_SINGLELINE);

However, this doesn't work with anything else. Specifically, I can't output the value stored in a variable, such as an int:

int variable = 5;
DrawText (hdcWindow, variable, -1, &rc, DT_SINGLELINE);

Or a char:

char variable = a;
DrawText (hdcWindow, variable, -1, &rc, DT_SINGLELINE);

How can I use DrawText() to display the contents of a variable? Why does using a string literal like "abc123" work but substituting it with variable doesn't?

¿Fue útil?

Solución

DrawText only knows how to display character strings. To display anything else, you need to convert to a character string first, then display that.

void show_int(int x, /* ... */) { 
     std::stringstream buffer;
     buffer << x;

     DrawText(hdcWindow, buffer.str().c_str(), -1, &rc, DT_SINGLELINE);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top