2

そのため、既存のアプリケーションで CPP の歯を削ろうとしています。

私はちょっとした障害に遭遇しました。以下に示すように、コンボボックスの項目が順番に追加されています。ただし、出力は

[1,10,11,12,13,14,15,2,3,4,5,6,7,8,9]

ここでCComboBoxのドキュメントを見てきました。それでも、なぜこれがこの結果を生み出しているのかについて、私はまだ混乱しています。

for (int i = 1; i <= m_pPage2->GetNumberColumns(); i++)
{
    CString szColNum;
    szColNum.Format (_T("%d"), i);
    m_cSubColumn.AddString(szColNum);
}
4

3 に答える 3

3

標準の比較関数は、数値を含む文字列をうまく処理できません。彼らは、文字列のサイズも考慮に入れる必要があることを考慮していません。これにより、「10」は「1」で始まるため、インデックス 0 に「1」以上のものよりも前になります。

文字列のサイズが同じになるように、すべての数値の先頭にゼロを埋め込むと、通常の数値順に並べ替えられます。

CComboBox使用時にコンテンツのソートを停止するには、プロパティをAddString()に設定する必要がありますCBS_SORTfalse

于 2015-05-18T16:26:26.320 に答える
1

コンボ ボックスの [プロパティ] ウィンドウで、set が False に設定されていることを確認します。これにより、コンボ ボックスは、入力したとおりにデータを表示できます。

*これは私が Visual Studio で行っていることです。使用している IDE がどこにあるのかわかりませんでした。

于 2015-05-18T16:29:30.763 に答える