アプリ版:「スタンプのみでお礼する」機能のリリースについて

 以下のような手順でリストコントロールにアイテムを追加しています。すると新しいアイテムはリストコントロールの先頭に追加されてしまいます。
 先頭ではなくリストの最後尾にアイテムを挿入するにはどうしたらいいのでしょうか?
 このサンプルはMFCですが回答はAPIやほかの手段を使っていても構いません。ヒントだけでも分かる方がいましたらお願いします。

LVITEMsItem;

sItem.mask = LVIF_TEXT;
sItem.iItem = 0;
sItem.iSubItem = 0;
sItem.pszText = LPSTR_TEXTCALLBACK;
m_lpcList->InsertItem(&sItem);

A 回答 (2件)

LVITEM の iItem メンバーに、末尾を指す数値を入れれば良いのでは?


項目数は CListCtrl の GetItemCount() メソッドで取得できますね。

# でも MFC は、よく知りません (^^;

参考URL:http://msdn.microsoft.com/library/default.asp?ur …
    • good
    • 0
この回答へのお礼

sItem.iItem = m_lpcList->GetItemCount();
と変更することで解決しました!どうもありがとうございました。

お礼日時:2002/12/12 19:24

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は違うようです。

補足日時:2002/12/12 19:13
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています