CListCtrlのことなのですが
親ウィンドウのOnCreateで下記のように作成しています。
m_ListCtrl.Create(LVS_ICON | LVS_ALIGNTOP | LVS_SORTASCENDING | LVS_AUTOARRANGE
| LVS_SHAREIMAGELISTS, rect, this, ID_LISTVIEW);
アイテム名で昇順にソートするスタイルを指定しています。
そしてアイテムを
m_ListCtrl.InsertItem(0, bbb, 0);
m_ListCtrl.InsertItem(0, ccc, 0);
m_ListCtrl.InsertItem(0, aaa, 0);
と追加しました。
aaa bbb ccc
と昇順にソートされて表示されました。ここまでは意図通りです。
そして
m_ListCtrl.SetItemText(0, 0, ddd);
とaaaのアイテム名をdddに変えてみたところ
ddd bbb ccc
となりました。ソートされてません。
m_ListCtrl.Update(0);
m_ListCtrl.Arrange(LVA_DEFAULT);
m_ListCtrl.Invalidate();
などとやってみましたが変化なしです。
どうやったらソートしてくれるのでしょうか?
VC++ 6.0 SP5 MFC
Windows2000 SP4
忘れてました。
CListCtrl::RedrawItemsってのを見つけたので
m_ListCtrl.RedrawItems(0, m_ListCtrl.GetItemCount() - 1);
とやってみましたが変化なしでした・・・
もしかして LVS_SORTASCENDING はInsertItemのときしかソートしてくれないのでしょうか?