Вопрос № 27961: Добрый день!
Как правильно использовать
EM_GETLINE
а также что означает на практике.
"Before sending the message, set the first word of this buffer to the size, in TCHARs, of the buffer."
(цитата из MSDN->EM_GETL...
Вопрос № 27.961
Добрый день!
Как правильно использовать
EM_GETLINE
а также что означает на практике.
"Before sending the message, set the first word of this buffer to the size, in TCHARs, of the buffer."
(цитата из MSDN->EM_GETLINE Message)
Приложение:
Отправлен: 19.10.2005, 19:43
Вопрос задал: VampSergey (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, VampSergey!
Попробуй вот так, и будешь приятно удивлен...
А фраза означает буквально:"До посылки сообщения, запишите в первое слово буфера длину буфера в TCHAR-ах" ...
Почему WM_GETTEXT работает, думаю, догадаешься сам...
Приложение:
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: 6-ой класс)
Отправлен: 19.10.2005, 21:02 Оценка за ответ: 5 Комментарий оценки: :))))))) просветление нашло очень скоро после задания вопроса. MSDN рулит! :)))))) Спасибо всем!
Отвечает: estiGi
Здравствуйте, VampSergey!
Ну, во-первых, передавать буфер таким образом считается очень некрасиво. Как минимум, это затрудняет чтение кода. Если ты не забыл, то имя массива является его адресом. Поэтому передаем так:
::SendMessage (hWndControl[ED], EM_GETLINE, 0, (LPARAM)buff);
Приведенная тобой фраза означает, что в первое слово буфера надо записать максимальный размер передаваемого буфера. Пишем так:
char buff [256];
*(WORD*)buff = (WORD)256;
В МСДН еще сказано, что строка не будет заканчиваться нулем, и что вернется количество записанных символов или ноль. Итого в приложение код
Приложение:
Ответ отправил: estiGi (статус: 2-ой класс)
Отправлен: 21.10.2005, 00:02