リストビュー内検索

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: リストビュー内検索

リストビュー内検索

by 西野孝雄 » 2007年2月15日(木) 01:35

返信ありがとうございます。

>THEREMINさん
残念ですが、私がやりたい事とは少し違うのです。
私がしたいのは検索で、そこに載ってるのは編集ですね。

>7さん
初めにも書きましたが、(あ、でも説明不足でした。すいません)
ひとつずつ文字列を取得して比較する方法なら解るのです。
現在、それを使って検索しているのですが
LVM_FINDITEMを使っての方法を教えて欲しかったのです。
記述も少なくて楽かな、と思いまして。
(速度的にどちらが速いかは試せていませんが)

by 7 » 2007年2月14日(水) 17:30

リストビューの二列目の文字列を取得して検索したい文字列と比較するという処理を、リストビューの項目の数までFor文などで回したら簡単ではないですがお望みの動作になるんじゃないかと思います。

言葉だけの説明ですけど、暇ができたらコードも書いて追記しようと思います。

by THEREMIN » 2007年2月14日(水) 04:20

よく見てないんですが、これかな?

http://www.activebasic.com/forum/viewto ... 5%E5%A1%BC

案外探したらもっとあるかも。

リストビュー内検索

by 西野孝雄 » 2007年2月14日(水) 01:57

検索しても情報が少なく、
掲示板でも返信が無い…。
あきらめろって事ですね。
失礼しました。

補足

by 西野孝雄 » 2007年1月29日(月) 03:20

リストビュー内検索

by 西野孝雄 » 2007年1月29日(月) 03:18

リストビュー内をLVM_FINDITEMを使って検索するのですが、リストビューが複数列ある場合一番左の列を検索するのは出来ましたが
左から2番目以降の列を検索する事が出来ません。
LVFI_NEARESTXYを指定すれば可能かと思ったのですが、これも無理でした。
もしかして左端しか検索できないのでしょうか。
検索する方法をご存知の方がいたら教えて下さい。
ひとつずつ文字列を取得して比較する方法でも出来ますが、この方法が可能ならこっちの方が楽なので。
AB 4.13
OS XP sp2

以下で左端列の検索は出来ます。

コード: 全て選択

Dim hLV As HWND
Dim lvf As LVFINDINFO
Dim Serch As Long
Dim str As String

str = "検索したい文字列"
hLV = GetDlgItem(hMainWnd,ListView1)
With lvf
	.flags = LVFI_STRING
	.psz = StrPtr(str)
End With
Serch = SendMessage(hLV, LVM_FINDITEM, -1, VarPtr(lvf))

'Serchに検索結果が入る
以下で左から2番目の列を検索をしたかったのですが出来ませんでした。

コード: 全て選択

Dim hLV As HWND
Dim lvf As LVFINDINFO
Dim Serch As Long
Dim str As String
Dim po As POINTAPI

str = "検索したい文字列"
hLV = GetDlgItem(hMainWnd,ListView1)
po.x=1	'二番目なので1
po.y=0
With lvf
	.flags = LVFI_STRING or LVFI_NEARESTXY
	.psz = StrPtr(str)
	.pt = po
	.vkDirection= VK_DOWN	'いろいろな組み合わせを試しましたが変化なし
End With
Serch = SendMessage(hLV, LVM_FINDITEM, -1, VarPtr(lvf))

ページトップ