![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WM_COMMAND выполняется, но результат <> 0
И. Павел © (2010-06-07 08:46:00)Здравствуйте.
Моя программа нажимает на пункт меню в другом приложении, используя такой код:
rez := SendMessage(H, WM_COMMAND, WParam(CurMenu), LParam(0));
При этом пункт меню нажимается: происходит связанное с ним действие. Но rez = 1. А в документации сказано:
Return Value
If an application processes this message, it should return zero.
http://msdn.microsoft.com/en-us/library/ms647591(VS.85).aspx
Подскажите, пожалуйста, в чем тут может быть дело? Может быть, нужно как-то по-другому посылать сообщение?
Заранее спасибо.
И. Павел (2010-06-07 13:05:00) [1]
> Игорь Шевченко
Спасибо. Отключу проверку результата.
Игорь Шевченко (2010-06-07 11:33:00) [2]И. Павел © (07.06.10 08:46)
Результат WM_COMMAND никому не интересен, кроме самой программы, DefWindowProc его не обрабатывает по умолчанию и контрол или элемент меню не выполняет какие-то действия в зависимости от результата.
WM_COMMAND - это уведомление о событии пользовательского интерфейса и никакой "стандартной обработки" здесь быть не может.
Игорь Шевченко (2010-06-07 11:30:00) [3]
> При этом пункт меню нажимается: происходит связанное с ним
> действие. Но rez = 1. А в документации сказано:
> Return Value
> If an application processes this message, it should return
> zero.
Плюнь
И. Павел (2010-06-07 10:47:00) [4]
> на WM_SYSCOMMAND
на WM_COMMAND
И. Павел (2010-06-07 10:46:00) [5]
> Сравни winsight or spy (либо установкой собс-ного хука)
В SPY ответ от программы на WM_SYSCOMMAND не приходит. От блокнота приходит нулевой.
Leonid Troyanovsky (2010-06-07 09:53:00) [6]
> И. Павел © (07.06.10 09:33) [1]
Сравни winsight or spy (либо установкой собс-ного хука)
обработку "ручного" выбора меню.
Кста, установка хука, в любом случае, потребуется,
например, для получения уведомления о разрушении
подопытного окна.
--
Regards, LVT.
oldman (2010-06-07 09:41:00) [7]
> А в документации сказано:
> Return Value
> Ifan application processes this message, it should return
> zero.
Видимо, application not processes this message...
И. Павел (2010-06-07 09:33:00) [8]В блокноте (SDI) - результат WM_COMMAND = 0. А в Winspector (MDI, как и приложение, с которым работаю я) - результат тоже = 1. Может быть, все дело в этом?