• ベストアンサー

ListViewの項目を入れ替える

C++で詳細表示のリストビューを扱うプログラムを書いているのですが あるボタンを押すと選択した項目が上や下に移動するようにしたいんです そのためには選択した項目とその上下の項目を入れ替えたらいいと思うのですが やり方がわかりません ListView_SortItemsマクロを使ってみましたが、ある二つの項目だけを入れ替えるのは できなさそうです。 MFCを使わない方法があればうれしいです

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ちょっと面倒だとは思いますが、LVM_GETITEM で入れ替え対象の行の情報を取得して、LVM_SETITEM で入れ替えてセットするくらいしかないんじゃないでしょうか。 いっそのこと Virtual ListView にしておくと、入れ替えは楽かもしれないですね。 http://msdn.microsoft.com/en-us/library/bb774736(v=vs.85).aspx#Using_Virtual_ListView_Controls

Sweet_potato
質問者

お礼

やはりその方法しかありませんでしたか 大変だったけどListView_GetItemとListView_SetItemで行を入れ替え 選択状態も入れ替える関数を作れました ありがとうございます

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

あまり手間は変わらないかもしれませんが、 (1) 移動する行を GetItem で情報取得 (2) (1)の行を削除 (3) (1)で取得した内容を移動先の行にInsert という手もありましたね…。

Sweet_potato
質問者

お礼

またアドバイスありがとうございます 一応確実な前の方法を使いたいと思います

すると、全ての回答が全文表示されます。

関連するQ&A