• 締切済み

CListBoxで選択した順番で項目を取得

Visual C++ 2013でMFCを利用しています。 CListBoxのSelectionプロパティを「拡張」にして、複数選択可能にしています。 Ctrl + マウスクリックで例えば項目番号0,2,1の順番に選択したとします。 GetSelItems()で選択されている項目リストを取得すると、昇順(例の場合は0,1,2)で返ってきてしまいます。 選択した順番どおりに項目番号を得るにはどういった方法がありますか?

みんなの回答

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

まず変化前選択状況を格納する vector なり list なり配列なりを用意して、 OnSelChange() で今の選択状況と変化前選択状況を比較して増えた分を変化前選択状況の後方に追加。 選択順の項目番号ががほしい場合は変化前選択状況を見る。 ……という感じでできるんじゃないかなぁ。もちろん逆に選択数が減った場合とか選択のクリア機能を追加する 場合とかはその処理を考えなきゃならないけど。

Vsid
質問者

お礼

遅くなりました。ありがとうございます。調べてみます。

関連するQ&A