我正在尝试使用 TextOut 函数在我的窗口上绘制文字,以下方法对我来说很好:
HDC hdc = GetDC(windowHandle);
TextOut(hdc, 10, 10, TEXT("Hello World"), 16);
ReleaseDC(windowHandle, hdc);
这输出:Hello World
到目前为止一切都很好,但是当我执行以下方法时:
HDC hdc = GetDC(windowHandle);
string myString = "Hello World";
TextOut(hdc, 10, 10, myString.c_str(), 16);
ReleaseDC(windowHandle, hdc);
程序输出:Hello World#$%^&
而#$%^& 部分实际上是我不知道如何在键盘上书写的其他方形符号。我知道 TextOut 函数的第四个参数是 LPCSTR 类型,并且在我的字符串之后使用 .c_str() 函数应该正确输出 LPCSTR 变量,并且自从程序运行以来它确实如此,但是为什么我会得到 #$% ^& 包含在 Hello World 的末尾,我该如何解决这个问题?我确实需要使用第二种方法而不是第一种,因为我的程序将生成字符串,然后我想将其输出到我的窗口。