我正在尝试使用TextOut函数在我的窗口上绘制单词,下面的方法对我来说很好:
HDC hdc = GetDC(windowHandle);
TextOut(hdc, 10, 10, TEXT("Hello World"), 16);
ReleaseDC(windowHandle, hdc);这个输出:Hello
但是,到目前为止,当我执行以下方法时,一切都很好:
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的末尾得到teh #$%^&包含在Hello末尾,以及如何解决这个问题?我确实需要使用第二种方法,而不是第一种,因为我的程序将生成字符串,然后我想要输出到我的窗口。
发布于 2014-08-21 15:05:09
根据TextOut (http://msdn.microsoft.com/en-us/library/windows/desktop/dd145133%28v=vs.85%29.aspx)的文档,fith参数反映字符串的长度。你说的是16,然而,只有11。
https://stackoverflow.com/questions/25429722
复制相似问题