![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
TarasBer |
![]()
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Суть такова. Я написал свой аналог EDIT.
Все строки он хранит внутри себя в специальной структуре (заголовок я вообще не трогал), поэтому некоторые сообщения я подменил:
(это функции, которые возвращают суммарную длину строк из специальной структуры и копируют строки в подставляемый буфер) И решил его проверить. Почему-то функция, что берёт текст из него, возвращает мусор. Сначала я увидел, что L, который пришёл в функцию, нихрена не сопадает с указателем на буфер. И хотя в PChar(L) приходят верные символы, сама строка заполняется каким-то мусором. Потом я увидел, что если W=0, то в оконный буфер вообще ничего не приходит. В общем у меня вопрос - что за хрень происходит с сообщением после SendMessage? По-моему, оно должно просто сразу вызвать оконную функцию, вместо этого происходит что-то непонятное. Как вообще надо правильно отвечать на WM_GETTEXT? -------------------- |
![]() ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата и здесь Я РЕШАЮ, как обработать сообщение Перед тем, как ТВОЕ окно обработает сообщение, ты нарушаешь контракт функции, чего ты от нее ждешь потом? Правильного функционирования? Обрабатывай, как хочешь, но перед этим необходимо, чтобы сообщение ДОШЛО до твоего окна. Пока контракт не выполнен - это может не произойти. Внимание, вопрос: "Кто виноват?" Ты, не соблюдая условия, которые тебе выставляет библиотека, или библиотека, "которая слишком тупая, и не понимает, что я хочу по-своему обработать стандартное сообщение"? Ну, обрабатывай... Если получишь...Сообщение отредактировано: IUnknown - 27.01.2012 13:22 |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 3:33 |