2012-12-12 2 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 사용하기 나는 그것이 무엇인지 확인한다. if (strcmp (sClassName, "SysListView32") == 0) { getLVMitems (control); } 그런 다음 제공 한 코드를 사용합니다. – pugnator

+0

ListView_GetItem은 성공하면 'TRUE'를 반환하고 실패하면 'FALSE'를 반환합니다. 먼저리스트 뷰에있는 아이템의 수를 확인하고'lvItem.iItem'을 증가시켜 루프 안에서 사용하고'lvItem.mask'를 어떻게 설정합니까? –