tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルListViewに第2ソートキー
記事No12522
投稿日: 2008/06/12(Thu) 18:45
投稿者はじめちゃん
ListViewに第2ソートキーを設定する事って
出来ませんでしょうか?

何方かご指導下さいますよう、よろしくお願いいたします。

[ツリー表示へ]
タイトルRe: ListViewに第2ソートキー
記事No12524
投稿日: 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 です。

[ツリー表示へ]
タイトルRe^2: ListViewに第2ソートキー
記事No12526
投稿日: 2008/06/13(Fri) 10:18
投稿者はじめちゃん
魔界の仮面弁士 様
ありがとうございます。
頑張ってみます。

[ツリー表示へ]