Win32 で複数行のテキストを表示するにはどうすればよいですか? このコードは私のGamePaint()関数内にあり、上位 5 つのハイ スコア (構造体の属性に格納されている) を画面に出力したいと考えています。このメソッドを使用して 1 行を正常に出力することができます...どうすれば 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>' に変換できません
EDIT2: 助けてくれてありがとう、queen3。以下の作業コードを投稿しました。
作業コード:
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);