掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CListCtrl::SetItemDataでセットした独自クラスのポインタ情報が上書きされないようにするには? (ID:73039)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
データの管理を自分(m_myInfo)で行わずに CListCtrl に任せる方法もケースによってはアリなので紹介。 void ***::SetDataXXX(int index) { CMyData *myData = m_list.GetItemData(index); if (myData == NULL) { myData = new CMyData; m_list.SetItemData(index, myData) } // myData に適当なデータをSetする } BEGIN_MESSAGE_MAP(***, ...) ON_NOTIFY(LVN_DELETEITEM, m_list.GetDlgItemID(), &***::onDeleteItem) END_MESSAGE_MAP() void ***::OnDeleteItem(NMHDR *hdr, LRESULT *result) { NM_LISTVIEW *lv = (NM_LISTVIEW*)hdr; if (lv->lParam != NULL) { delete reinterpret_cast<CMyData*>(lv->lParam); } *result = 0; }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.