@Warinator

Как правильно обновлять элемент EDITTEXT?

Я пишу программу, которая с использованием хуков отображает основные события мыши. Для отображения я использую диалоговое окно с заданным используя ресурсы текстовым полем
(EDITTEXT IDC_EDIT_REC, 7, 7, 160, 105, ES_MULTILINE|ES_WANTRETURN|WS_BORDER|ES_AUTOVSCROLL|ES_READONLY)
Каждый раз когда программа получает сообщение о новом событии, я считываю содержимое текстового поля и добавляю к нему используя strcat строку. Проблема в том, что при этом не работают перенос на новую строку('\n' игнорируется, куда его не пихай) и автоскроллинг при переполнении поля по вертикали. Как правильно обновлять текстовое поле в этом случае?
bcfc3382a0c94378985503dac72260cb.png
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
1. Для переноса строк использовать символ 13 (\r).

2. ES_AUTOVSCROLL Automatically scrolls text up one page when the user presses the ENTER key on the last line.
Так что не это тебе нужно, нужно просто ставить курсор в конец (исходники Delphi дают сообщение EM_SETSEL).

3. Я не знаю, как ты управляешь памятью, но будь с этим предельно осторожен.

4. strcat будет медленным, когда данных будет много, подумай про имитацию ввода (сообщение EM_REPLACESEL).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы