Win32:在缓冲区中存储多行文本
Win32: Storing Multi-Line Text in a Buffer
如何在Win32中显示多行文本?这段代码在我的 GamePaint() 函数中,我想将前 5 个高分(存储在结构的属性中)写到屏幕上。我可以使用此方法让它成功输出一行......如何使 TCHAR 缓冲区 szText 存储多行?这是我到目前为止尝试的:
原始代码:
//draw rect for normal scores
ChangeTextFormat(hDC, hWnd, 1);
TCHAR szText[64];
RECT rcNormalScores = { 268, 122, 436, 330};
RECT rcHardScores = { 37, 122, 198, 330};
//stringstream ssTemp;
for(int i = 0; i < 5; i++)
{
//ssTemp << i;
//display nth Normal score
wsprintf(szText, "%d n", g_scoreTop[i].num);
DrawText(hDC, szText, -1, &rcNormalScores, DT_LEFT | DT_WORDBREAK);
}
编辑:感谢您提供的信息,但我仍然在数据类型之间转换时遇到一些困难。这是我得到的错误:
无法从"std::basic_string<_Elem,_Traits,_Ax>"转换为"std::basic_string<_Elem,_Traits,_Ax>"
编辑2:感谢您的帮助,女王3。我在下面发布了工作代码:
工作规范:
ChangeTextFormat(hDC, hWnd, 1);
RECT rcNormalScores = { 37, 122, 198, 330};
RECT rcHardScores = { 268, 122, 436, 330};
stringstream ssTemp;
for(int i = 0; i < 5; i++)
{
ssTemp << g_scoreTop[i].num << " n";
}
string sTemp = ssTemp.str();
LPCSTR LPTemp = (LPCSTR)sTemp.c_str();
DrawText(hDC, LPTemp, -1, &rcNormalScores, DT_LEFT | DT_WORDBREAK);
DrawText(hDC, LPTemp, -1, &rcHardScores, DT_LEFT | DT_WORDBREAK);
- 用所有行和换行符制作一个字符串,并执行单个绘图文本
- 每次通过添加字符串的高度来调整 rcNormalScores .top(为此您可以使用DT_CALCRECT标志)
如果您稍后决定将DT_LEFT更改为DT_CENTER,则第一个可能会更好。
相关文章:
- 打印逐行存储的文本文件
- 将从格式化文本文件读取的文本数据存储到链表
- C++ 使用存储在动态数组中的文本文件中的数据查找模式
- 使用矢量将文本文件中的输入存储到 2D 数组中
- 是否保证相同内容字符串文本的存储相同?
- 从文本文件读取,然后将项目存储到列表中
- 从文本文件中读取一行并将其存储在 C++ 中的 2D 矢量中
- 如何将函数的输出数据存储在文本文件中
- 如何在不知道大小的情况下读取文本文件并存储到数组中
- 将文本文件中的文本存储到六个不同的矢量中(C++)
- 为什么使用 C++ 中的类对象写入文件中的数据以非文本格式存储?
- C++读取文本文件并存储数据
- 如何有效地读取和存储 1GB 文本文件中的数据
- 是否可以将来自 Win32 EDIT 控件的文本输入存储在C++ std::string 中?
- std::bad_alloc 将文本文件中的单个字符存储到矢量C++中时
- C ++将文本存储在数组的不同索引中,并带有一两个
- 将大文本文件存储到矢量中并循环访问它
- 从文本文件中读取整数并将它们存储到数组中
- 无法将文本存储在SFML 2.4中
- 将包含空格的文件中的文本存储为字符串