少し前に、単語を分割せずに特定のサイズの行の長さでワードラップを実行するためのスニペットを探していました。十分に機能していましたが、編集コントロールで使用し始めたときに、間にある複数の空白記号を使い果たしていることに気付きました。wstringstreamがタスクに適していない場合は、修正する方法、または完全に削除する方法を検討しています。多分そこに誰かが同様の機能を持っていますか?
void WordWrap2(const std::wstring& inputString, std::vector<std::wstring>& outputString, unsigned int lineLength)
{
std::wstringstream iss(inputString);
std::wstring line;
std::wstring word;
while(iss >> word)
{
if (line.length() + word.length() > lineLength)
{
outputString.push_back(line+_T("\r"));
line.clear();
}
if( !word.empty() ) {
if( line.empty() ) line += word; else line += +L" " + word;
}
}
if (!line.empty())
{
outputString.push_back(line+_T("\r"));
}
}
折り返し線の区切り記号はそのままにしておく必要があります\r