Я разработал приложение win32 (c ++) и теперь хочу провести некоторые тесты автоматизации с использованием Inspect (SDK).
Моя проблема в том, что Inspect не распознает EDIT
коробки. Я имею в виду, что Inspect не может различить их имена. Видно, что есть несколько EDIT
ящики, но все они называются «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
метод, но он тоже не работает.
Два метода отлично работают с BUTTON
, но не работает на EDIT
,
Кто-нибудь в качестве подсказки?
Можно установить имя (или любое другое свойство элемента управления) с помощью динамической аннотации.
Кроме того, если это общий элемент управления, можно задать имя, добавив скрытую метку в файл .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