Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.29;
Скачать: CL | DM;

Вниз

WM_COMMAND выполняется, но результат <> 0   Найти похожие ветки 

 
И. Павел ©   (2010-06-07 08:46) [0]

Здравствуйте.

Моя программа нажимает на пункт меню в другом приложении, используя такой код:
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 09:33) [1]

В блокноте (SDI) - результат WM_COMMAND = 0. А в Winspector (MDI, как и приложение, с которым работаю я) - результат тоже = 1. Может быть, все дело в этом?


 
oldman ©   (2010-06-07 09:41) [2]


> А в документации сказано:
> Return Value
> If an application processes this message, it should return
> zero.


Видимо, application not processes this message...


 
Leonid Troyanovsky ©   (2010-06-07 09:53) [3]


> И. Павел ©   (07.06.10 09:33) [1]

Сравни winsight or spy (либо установкой собс-ного хука)
обработку "ручного" выбора меню.

Кста, установка хука, в любом случае, потребуется,
например, для получения уведомления о разрушении
подопытного окна.

--
Regards, LVT.


 
И. Павел ©   (2010-06-07 10:46) [4]


> Сравни winsight or spy (либо установкой собс-ного хука)

В SPY ответ от программы на WM_SYSCOMMAND не приходит. От блокнота приходит нулевой.


 
И. Павел ©   (2010-06-07 10:47) [5]


> на WM_SYSCOMMAND

на WM_COMMAND


 
Игорь Шевченко ©   (2010-06-07 11:30) [6]


> При этом пункт меню нажимается: происходит связанное с ним
> действие. Но rez = 1. А в документации сказано:
> Return Value
> If an application processes this message, it should return
> zero.


Плюнь


 
Игорь Шевченко ©   (2010-06-07 11:33) [7]

И. Павел ©   (07.06.10 08:46)  

Результат WM_COMMAND никому не интересен, кроме самой программы, DefWindowProc его не обрабатывает по умолчанию и контрол или элемент меню не выполняет какие-то действия в зависимости от результата.

WM_COMMAND - это уведомление о событии пользовательского интерфейса и никакой "стандартной обработки" здесь быть не может.


 
И. Павел ©   (2010-06-07 13:05) [8]


> Игорь Шевченко

Спасибо. Отключу проверку результата.



Страницы: 1 вся ветка

Текущий архив: 2010.08.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.004 c
2-1275750948
HRustBB
2010-06-05 19:15
2010.08.29
Как рисовать на TPanel


15-1275997158
_REA
2010-06-08 15:39
2010.08.29
Парадокс


15-1275936455
xayam
2010-06-07 22:47
2010.08.29
Игровой сервер 2


15-1275984221
SP
2010-06-08 12:03
2010.08.29
Подскажите ПО реализующее стабильный VPN-клиент (PPTP)


15-1276028976
Юрий
2010-06-09 00:29
2010.08.29
С днем рождения ! 9 июня 2010 среда