Listviewのテキストコールバックとオーナーデータの違い

テキストコールバック

InsertItemでテキストにLPSTR_TEXTCALLBACKを指定する。LVN_GETDISPINFOが飛んでくるのでここでテキストをセットする。データは構造体などで持ってListViewのLParamに設定しておくのがいいと思われる。テキストと同様にアイコンもI_IMAGECALLBACKを指定することにより同じようにできる。

オーナーデータ

ListViewの作成時にLVS_OWNERDATAを指定する。InsertItemは使わず、データは並びも含めてアプリが持つ。アプリがセットするのはSetItemCountExによるアイテムの個数だけで、これをやるとLVN_GETDISPINFOが飛んでくるのでここで表示データをセットする。

どちらもLVN_GETDISPINFOが来たときはポインタだけ設定すればいいはずでListViewはコピーを持たない。pszTextはコンストでないがこれは取得用もかねているためでコンストキャストしていいはず。

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)