Очищення вікна засобами WinAPI

Чи можна очистити поле введення засобами WinAPI?

SendMessage (Handle, WM_CLEAR, 0, 0)

Пробував, не працює. Та й опис повідомлення якийсь туманний: wm_Clear: Видаляє поточний вибір, зроблений у вікні (MSDN).

Можна надіслати вікно повідомлення WM_SETTEXT з порожнім рядком

> Та й опис повідомлення якийсь туманний: wm_Clear: Видаляє > поточний вибір, зроблений у вікні (MSDN). від edit control. (c) MSDN

> Пробував, не працює.Погано пробували. procedure TForm1.Button1Click(Sender: TObject); begin Edit1.SelectAll; SendMessage (Edit1.Handle, WM_CLEAR, 0, 0); end;

Якщо завгодно на чиста API, то SelectAll змінюємо на SendMessage(Handle, EM_SETSEL, 0, -1);

> Можна надіслати вікно повідомлення WM_SETTEXT з порожнім рядкомЗнову не хоче: вперто додає переданий рядок до вже існуючого без будь-якого попереднього очищення :( Ось код: StrBase := ""; SendMessage(hInput, WM_SETTEXT, 0, Integer(StrBase)); StrBase := "Test";

> ДжоА Edit знаходиться в іншому додатку. Хендл я знайшов, а очистити ніяк не можу :(

> Новачок (31.01.09 16:07) [7] > > ДжоА Edit знаходиться в іншому додатку. Хендл я знайшов, > а очистити ніяк не можу: (Отже, у вас помилка в програмі. Код SendMessage(Handle, EM_SETSEL, 0, -1); SendMessage (Handle, WM_CLEAR, 0, 0); прекрасно очищає Edit в «іншому додатку».

> Джо> Значить, у вас помилкапрограмі.Та я і не сперечаюся: звичайно, помилка може бути. Але не дає спокою одна деталь - наведений мною код працює адже, текст-то з'являється. Голову вже зламав :(

StrBase := ""; SendMessage(hInput, WM_SETTEXT, 0, Integer(PChar(StrBase))); ?