2015-01-12 2 views
0

Win32 응용 프로그램 (C++)을 개발했으며 지금은 Inspect (SDK)를 사용하여 자동화 테스트를하고 싶습니다.Inspect가 편집 가능한 텍스트 상자를 인식하지 못합니다.

내 문제는 Inspect가 EDIT 상자를 인식하지 못하는 것입니다. Inspect는 그들의 이름을 구별 할 수 없다는 뜻입니다. EDIT 상자가 여러 개 있음을 알 수 있지만 모두 null 값인 "none"으로 이름이 지정되었습니다. 그 이름은 내가 LPCTSTR lpWindowName 매개 변수

// Create an edit box 
    hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, 
     _T("EDIT"), 
     _T("I JUST WANT TO BE SEEN !"), 
     WS_CHILD|WS_VISIBLE| 
     ES_MULTILINE|ES_AUTOVSCROLL|ES_AUTOHSCROLL, 
     50, 
     100, 
     200, 
     100, 
     hWnd, 
     (HMENU)IDC_MAIN_EDIT, 
     GetModuleHandle(NULL), 
     NULL); 

나는 또한 setWindowText 방법으로 이름을 설정하는 시도로 초기화하더라도, 항상 null, 그러나 그것은 중 하나가 작동하지 않습니다. 두 메서드는 BUTTON과 함께 작동하지만 EDIT에서는 작동하지 않습니다.

실마리를 가진 사람이 있습니까?

+0

가 확실 창문 텍스트가 어디 표시되지 않습니다 있습니까 접근 가능한 객체? 'accValue'가 아닌가? 그것이 'accValue'라면 나는 무슨 일이 벌어지고 있는지 감각이 있다고 생각합니다 ... – andlabs

+0

ID로 구분할 수 없습니까? 예 : 위의 예에서 ID는'IDC_MAIN_EDIT'입니다. –

+0

사실,'LPCTSTR lpWindowName' show up은 편집 상자에 텍스트를 가지고 있습니다. 그래서 예, @andlabs, 그것은 이름 대신 현재 값입니다. –

답변

0

Dynamic Annotation을 사용하여 이름 (또는 컨트롤의 다른 속성)을 설정할 수 있습니다. 또한 공용 컨트롤 인 경우 .rc 파일에 숨겨진 레이블을 추가하여 이름을 설정할 수도 있습니다. 그렇지 않으면 동적 주석을 사용해야합니다.

당신은이 중 하나를 설정하려면 :

-NAME     -KEYBOARDSHORTCUT 
-DESCRIPTION   -DEFAULTACTION 
-ROLE     -VALUEMAP 
-STATE     -ROLEMAP 
-HELP     -STATEMAP. 

당신은 직접 주석 또는 서버 주석을 사용해야합니다. 하지만 이들 중 하나 설정하려면 :

-FOCUS     -RIGHT 
-SELECTION    -PREV 
-PARENT    -NEXT 
-UP     -FIRSTCHILD 
-DOWN     -LASTCHILD 
-LEFT 

을 만 서버 주석 당신이 그것을 할 수 있습니다.

여기에 동적 주석에 대한 자세한 내용입니다 : http://msdn.microsoft.com/en-us/windows/desktop/gg712214.aspx

사용자 정의 컨트롤을 동적 주석을 수행하려는 경우 여기에 자세한 내용이있다 : http://msdn.microsoft.com/en-us/windows/cc307845.aspx

+0

네, 여기가 제 질문으로 향하고있는 곳입니다. 오해의 소지가있는 매개 변수 이름에 대한 위의 내 의견을 참조하십시오. – andlabs

관련 문제