Здравствуйте эксперты! Я наверно не слишком точно написал свой прошлый вопрос и не получил ответов. Проблема вот в чем оказалась: при посылке сообщения WM_SETTEXT окну EDIT, когда LPARAM указывает на строку, большую, чем 32кб, то происходит вот что: SendMessage возвращает FALSE (ошибка), но текст все-таки устанавливается в окне EDIT, причем весь, а не обрезанный до 32кб. Но туда уже нельзя вводить че-нить ручками -- оно не отвечает на клавиатурный ввод. Хотя Ctrl+C, Ctrl+V работают. Ограничение EDIT в 9х -- 64кб. Буфер содержит нормальные данные, проверено (ну EDIT же отображает это). Второй русский вопрос: Что делать? %) Спасибо.
А раздел "Allocating a Text Buffer" в теме "Edit Controls" читал? Там чёрным по белому написано, что контрол по умолчанию имеет лимит 32К, а чтобы его изменить, используй сообщение EM_SETLIMITTEXT. Но! В описании EM_SETLIMITTEXT читаем: ... cbMax Value of wParam. Specifies the new text limit, in bytes. If this parameter is 0, Windows sets the maximum text limit. The maximum text limit is 32,766 bytes for a single-line edit control, and 65,535 bytes for a multiline edit control. ... Так что - MS умело ограничила разработчиков на уровне 32К для однострочных и 64К для многострочных контролов. Придётся писать свой... Ответ отправлен: 19.08.2002, 14:58 Отправитель: Артём Шегеда
Вопрос № 167
Кто-нить, какие функции Win API необходимо использовать, для передачи нажатий клавы в консольную Win и DOS программу. Т.е. мне в Edit вводят строку, а DOS прога думает, что это ей с клавиатуры передают. Если реально - коротенький примерчик.
Если DOS-приложение запускаешь своими силами, то передавать и принимать данные в/из стандарных потоков ввода-вывода можно, используя Pipes. При этом заполняется структура STARTUPINFO, а именно поля: dwFlags, hStdInput, hStdOutput - в два последних (или в один из них) заносятся handles созданных предварительно pipes. В MSDN есть хороший пример - "Creating a Child Process with Redirected Input and Output".
Ответ отправлен: 21.08.2002, 13:22 Отправитель: Артём Шегеда Отвечает Pablo
Доброе время суток, LammeRrr! Ну попробуй для этого использовать функцию WriteConsoleInput. В хелпе написано про нее что она могет записывать во входной буффер консоли. Ответ отправлен: 22.08.2002, 16:09 Отправитель: Pablo
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.