Search code examples
c++variablesdrawtext

How can I use DrawText() to display a variable?


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?


Solution

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