Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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. Может быть, все дело в этом?


Наверх

Титульная страница Поиск, карта сайта Написать письмо