2011-08-02 86 views
0

我使用以下代碼檢索包含第二列中的某些文本的行的索引(其中包含3,索引1和2)包含其他文本)。在ListView中按文本和列查找項目行索引

LVFINDINFO inf={0}; 
inf.flags=LVFI_PARCIAL|LVFI_STRING; 
inf.psz="textToFind"; 
std::cout<<ListView_FindItem(mywinHandle, -1, (LPARAM)&inf); 

但是,這將只返回-1,因爲它將在第一列中搜索(索引1 - 在15個輸入上,將返回15等)。我試着理解使用lParam成員在其他特定列中進行搜索的方式(如果甚至可能的話),但是甚至當我用正確的Item成員添加爲lParam LVITEM時甚至無法使用。我只是不能完全找到這裏的方式http://msdn.microsoft.com/en-us/library/bb774745%28v=vs.85%29.aspx

感謝您的任何幫助。

+1

任何你不能只寫for循環的原因。並逐一瀏覽每個項目,直到找到您正在尋找的項目爲止? – jahhaj

+0

@jahhaj你的意思是通過索引逐項獲取 - 這可能實際上工作。但我想知道是否有任何解決方法。感謝您的答案,但如果我無法找到一種方法來做到這一點,我只會做一個循環。 – Filgera

回答

0

您無法在子欄中進行搜索。您只能在主列中搜索。

lParam值指定從哪個行開始搜索。您錯誤地認爲它允許您指定要搜索的列。

+0

我明白了。我將不得不依靠使用循環或其他方法。謝謝! – Filgera