Сейчас на форуме: UniSoft, bartolomeo (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› переместить курсор в Edit control |
Посл.ответ | Сообщение |
|
Создано: 01 августа 2007 01:58 · Личное сообщение · #1 при помощи сообщения SendMessage(hWnd,WM_SETTEXT,0,(LPARAM) mes); записываю текст в контрол.Всё хорошо.Но курсор как был в самом начале текстовой строки так там и остаётся,в результате чего когда я вывожу другой текст то он затирает старый.Неправильно это.А как сделать чтобы новый текст шол за окончанием предыдущего,ну чтобы можно было например отслеживать поступающую инфу в Edit. Помогите кто может. Может я чтото со стилем неправильно сделал? Стиль контрола: CreateWindow("EDIT",NULL,ES_MULTILINE | WS_HSCROLL | WS_VSCROLL | WS_TABSTOP | WS_VISIBLE | ES_AUTOHSCROLL | ES_AUTOVSCROLL | WS_CHILD | WS_BORDER | ES_WANTRETURN ,10,60,570,400,hWnd,0,hInstance,NULL); Да,небольшая просьба,если дадите ответ то желательно чтобы вы знали что советуете.Перед тем как создать тему я долго и безрезультатно лазил в MSDN.Помогите,проэкт стоит..... ![]() |
|
Создано: 01 августа 2007 02:13 · Поправил: multiarc · Личное сообщение · #2 Можно вот так (Delphi):
Вроде должно работать... ![]() |
|
Создано: 01 августа 2007 02:13 · Личное сообщение · #3 Чтобы переместить курсор в конец текста можно послать окну сообщение WM_CHAR, передав код клавиш Ctrl+END. Но это не поможет. WM_SETTEXT в любом случае заменяет весь текст. Как вариант, прочитать текст из окна, прибавить к нему тот, который нужно добавить и снова WM_SETTEXT. Другого подсказать не могу. ----- Уважайте других и пишите грамотно. ![]() |
|
Создано: 01 августа 2007 03:20 · Личное сообщение · #4 |
|
Создано: 01 августа 2007 03:20 · Личное сообщение · #5 |
|
Создано: 01 августа 2007 03:25 · Личное сообщение · #6 valentyn пишет: Насколько я понял так как работать с консолью тут неполучится.Что меня напрягает так это то что нужно делать много дополнительных операций,вообще жуть.Постоянно гонять данные межде буфером.... можно оптимизировать предложенные нами варианты и обойтись без GetWindowText, просто храня буфер с текстом окна и при необходимости его realloc'ить. подумай об этом, ведь консольный буфер, про который ты писал, тоже хранится где-то в памяти... это с виду всё так неудобно кажется. а если красиво код вынести в отдельные функции, то не так и страшно. ![]() |
|
Создано: 01 августа 2007 03:37 · Личное сообщение · #7 |
|
Создано: 01 августа 2007 07:29 · Личное сообщение · #8 |
|
Создано: 01 августа 2007 14:20 · Поправил: fakit · Личное сообщение · #9 |
|
Создано: 07 декабря 2010 02:20 · Личное сообщение · #10 до Win7 работал код [D7] Code:
Чем его в Win7 заменить можно? ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 09 декабря 2010 14:26 · Личное сообщение · #11 |
|
Создано: 09 декабря 2010 14:58 · Личное сообщение · #12 Isaev, Использую такой подход: Code:
PE_Kill про SendInput не знал. Спасибо! ----- все багрепорты - в личные сообщения ![]() |
|
Создано: 09 декабря 2010 15:10 · Поправил: Isaev · Личное сообщение · #13 |
![]() |
eXeL@B —› Программирование —› переместить курсор в Edit control |