- ベストアンサー
リストコントロール(MFC or API)の最後尾にアイテムを追加するには?
以下のような手順でリストコントロールにアイテムを追加しています。すると新しいアイテムはリストコントロールの先頭に追加されてしまいます。 先頭ではなくリストの最後尾にアイテムを挿入するにはどうしたらいいのでしょうか? このサンプルはMFCですが回答はAPIやほかの手段を使っていても構いません。ヒントだけでも分かる方がいましたらお願いします。 LVITEM sItem; sItem.mask = LVIF_TEXT; sItem.iItem = 0; sItem.iSubItem = 0; sItem.pszText = LPSTR_TEXTCALLBACK; m_lpcList->InsertItem(&sItem);
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
LVITEM の iItem メンバーに、末尾を指す数値を入れれば良いのでは? 項目数は CListCtrl の GetItemCount() メソッドで取得できますね。 # でも MFC は、よく知りません (^^;
その他の回答 (1)
- ShaneOMac
- ベストアンサー率39% (356/898)
CListCtrl int InsertItem(int nItem, LPCTSTR lpszItem); nItem 挿入するアイテムの位置を整数インデックス値で指定 lpszItem アイテムのラベルを表す文字列へのポインタを指定 たぶんCListBoxと共通で-1でリストの最後だと思います。 リファレンスブック持っていませんか?
補足
さっそくありがとうございます。しかし... sItem.iItem=-1は試してみたのですが、InsertItem()の戻り値も-1となり失敗してしまいます。 MSDNによるとこのiItemは「Zero-based index of the item to which this structure refers.」とあるのでもともと-1は違うようです。
お礼
sItem.iItem = m_lpcList->GetItemCount(); と変更することで解決しました!どうもありがとうございました。