Как установить текст в «другом» приложении win32 - PullRequest
1 голос
/ 17 января 2012

Я использую spy ++ и вижу, что у моего элемента управления есть десятичное число, совпадающее с шестнадцатеричным (после преобразования, конечно) в spy ++, и я также вижу совпадения родительского окна, поэтому у меня есть IntPtr для Label и IntPtr для Форма / окно, но мой SendMessage не работает для изменения текста в целевом приложении.

Другой подход может заключаться в том, чтобы сделать что-то вроде этого поста, но что такое контрольный идентификатор и как мне его получить SetText текстового поля во внешнем приложении. Win32 API

Я полагаю, что hWnd здесь должен быть управлением hWnd, верно?

SendMessageCall(hWnd, WM_SETTEXT, (IntPtr)value.Length, value);

Я заметил, что получение текста работает

SendMessageCall(hWnd, WM_GETTEXT, (IntPtr)sb.Capacity, sb);

и я замечаю, что я получаю тест, вижу правильное значение, устанавливаю текст, но он не меняется, а затем снова получаю текст, используя SendMessage И это новое значение, но приложение все еще показывает неправильное значение .... хм, мне нужно отправить сообщение перекрасить, может быть, и если да, то какой код для этого?

спасибо, Декан

1 Ответ

2 голосов
/ 17 января 2012

Вы не отправляете сообщение окна для принудительной перерисовки, вместо этого вы звоните InvalidateRect(hWnd, NULL, TRUE).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...