リストボックスにソート属性( LBS_SORT)が指定されている時、アイテムの名前がダブると区別がつかないと思うのですが、そういう場合は普通どういう風に区別をつけるのでしょうか?
環境はWindows7(32bit)上でシンプルにWin32APIを使っています。(MFC等は使っていません)
リストボックスのソートなのですが
Re: リストボックスのソートなのですが
まず,LB_ADDSTRINGメッセージを送信した時のSendMessageの戻り値が,追加した要素のインデックスになります。
そして,WPARAMに要素のインデックスを,LPARAMにその要素に紐付けたいオブジェクトへのポインタ (or 整数値)に指定してLB_SETITEMDATAメッセージを送れば,リストボックスの各要素に情報を紐付けられます。
あとは,LB_GETITEMDATAで紐付いた情報を取得できるので,この情報を使って要素を区別できます。
そして,WPARAMに要素のインデックスを,LPARAMにその要素に紐付けたいオブジェクトへのポインタ (or 整数値)に指定してLB_SETITEMDATAメッセージを送れば,リストボックスの各要素に情報を紐付けられます。
あとは,LB_GETITEMDATAで紐付いた情報を取得できるので,この情報を使って要素を区別できます。
Re: リストボックスのソートなのですが
なるほど、これなら線形リストでデータ管理していてもランダムアクセス出来そうですね。
ありがとうございました。
ありがとうございました。