gamehikker

C++ winapi EDIT

10 сообщений в этой теме

Как добавить строку в edit ?

SendMessage(hcom, LB_ADDSTRING, 0, (LPARAM)(buffer));

Так я добавлял строку в listbox , но с edit такое не катит (
Нужно добавлять новую строку , не стирая старых 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, gamehikker сказал:

новую строку , не стирая старых 

Мультилайн edit надеюсь?)

LB_ADDSTRING это же для лист бокса)

попробуйте сообщение WM_SETTEXT вроде должно работать, если не поможет, я свои старые проекты раскопаю, подскажу)

 

Изменено пользователем temtriss
Очень важное добавление.
1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
44 минуты назад, temtriss сказал:

 WM_SETTEXT

 

Оно удаляет весь остальной текст . Мультилайн-мультилайн)

Изменено пользователем gamehikker
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, gamehikker сказал:

Оно удаляет весь остальной текст .

А вот это не пробовал:
EM_SETSEL
EM_REPLACESEL

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

strLen = SendMessageA(hEdit, WM_GETTEXTLENGTH, 0, 0);

SendMessageA(hEdit, EM_SETSEL, (WPARAM)strLen, (LPARAM)strLen);

SendMessageA(hEdit, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)str);

Изменено пользователем temtriss
1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, ReWanet сказал:

А вот это не пробовал:

чуть-чуть опередил меня :(

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 минут назад, ReWanet сказал:

А вот это не пробовал:
EM_SETSEL
EM_REPLACESEL

EM_REPLACESEL пишет в самое начало . То есть не в конце всего текста , а до него.
EM_SETSEL вообще не пишет

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, temtriss сказал:

 

strLen = SendMessageA(hMemo, WM_GETTEXTLENGTH, 0, 0);

SendMessageA(hEdit, EM_SETSEL, (WPARAM)strLen, (LPARAM)strLen);

SendMessageA(hEdit, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)str);

Ща попробую.
UPD
всё норм

Изменено пользователем gamehikker
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, gamehikker сказал:

Оно удаляет весь остальной текст . Мультилайн-мультилайн)

Получаешь текущее значение эдита -> добавляешь к нему свою строку как тебе угодно -> записываешь через WM_SETTEXT

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, uhx сказал:

Получаешь текущее значение эдита -> добавляешь к нему свою строку как тебе угодно -> записываешь через WM_SETTEXT

Такая идея была с самого начала .Но мне понравился вариант

temtriss

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.