タイトル | : Re: ListViewに第2ソートキー |
記事No | : 12524 |
投稿日 | : 2008/06/12(Thu) 19:40 |
投稿者 | : 魔界の仮面弁士 |
> ListViewに第2ソートキーを設定する事って > 出来ませんでしょうか?
たとえば、幅ゼロの列を用意しておき、そこに「第1キーと第2キーを連結したデータ」を 入れておくという手があります。で、ソートはその幅ゼロ列を使って行う、と。
この方法の問題は、幅ゼロの列が邪魔(ユーザが列幅を調整すると見えてしまう)な点です。
余計な隠し列を使いたくない場合には、下記のように API を使ってソートできます。 http://support.microsoft.com/kb/170884
LVM_SORTITEMS のメッセージを投げると、行を並び替えるために、AddressOf で指定した メソッドがイベントのように呼び出されます。 (上記のサンプルでは、 Function CompareDates(…) のメソッドです)
このメソッドでは、第1引数、第2引数に行データ(のハンドル)が渡されますので、 それらの行を比較して、「行1<行2」なら負数、「行1=行2」ならゼロ、 「行1>行2」なら正数を返すように実装すれば OK です。
|