2012-12-12 67 views
0

我發現的所有例子都是C#相關的,但我不熟悉它。 我的任務是提供某種自動化測試。我有安裝其第一按鈕SysListView32裏面,我能理解 我的目標是選擇它們,其名稱選擇按鈕,單擊它 最後一部分是顯而易見的:使用C枚舉SysListView32項目

GetWindowText(control, window_name, 256); 
if(strcmp..... 
{ 
do smth 
} 

但是,當涉及到SysListView32我不明白如何提取它的對象和名稱在C

回答

1

看看LVM_GETITEM。 MSDN文檔頁面在這裏:http://msdn.microsoft.com/en-us/library/windows/desktop/bb774953(v=vs.85).aspx。該文件實際上是非常徹底的。

簡單例子,將檢索「lParam的」圖像列表索引的圖標和項目的文本:

LVITEM lvItem; 
TCHAR szBuffer[MAX_PATH + 1] = { 0 }; 

lvItem.mask  = LVIF_PARAM | LVIF_IMAGE | LVIF_TEXT; 
lvItem.iItem  = iItem; 
lvItem.iSubItem = 0; 
lvItem.pszText = szBuffer; 
lvItem.cchTextMax = MAX_PATH; 

if(ListView_GetItem(m_hListView,&lvItem)) 
{ 
    /* success! the item details are in lvItem */ 
} 
+0

非常感謝,我知道了。但問題是ListView_GetItem返回0.程序邏輯如下:我列舉了窗口上的控件。使用GetClassName我檢查它是什麼。如果(strcmp(sClassName,「SysListView32」)== 0){ getLVMitems(control); }然後我使用您提供的代碼。 – pugnator

+0

如果成功,ListView_GetItem將返回「TRUE」,如果失敗則返回「FALSE」。你是否首先檢查列表視圖中有多少項目,並在循環中使用它,包括'lvItem.iItem'和你將'lvItem.mask'設置爲什麼? –