2012-05-09 3 views
0

Моя проблема заключается в том, что у меня есть код, который я не могу изменить, который реагирует на ON_UPDATE_COMMAND_UI, и я размещал код в WinForms, поэтому он неправильно маршрутизирует сообщения.Mimic ON_UPDATE_COMMAND_UI

Я подключился к переопределению Idle на моем хосте winform, но я не знаю, как имитировать сообщение.

Если бы я хотел подражать ON_UPDATE_COMMAND_UI, отправив сообщение непосредственно на цель, как бы я мог организовать WPARAM и LPARAM.

Я посмотрел на мужество MFC, и кажется, что он вообще не отправляет сообщение, он прямо идет от команд маршрутизации с помощью методов в CmdTarget для ручного поиска по карте сообщений цели.

Итак, поскольку у меня нет примеров толчка реального сообщения, я не знаю, как это сделать.

Альтернативные решения одинаково приемлемы!

ответ

0

Я посмотрел на внутренностях MFC, и кажется, что он не посылает сообщение

Это утверждение неверно. Маршрутизация Al начинается с сообщения WM_IDLEUPDATECMDUI, отправленного в главное окно, и всех потомков, когда приложение переходит в состояние ожидания.

Он также отправляется, когда меню появляется, чтобы обновить пункты меню. Я не думаю, что реализовать его в .NET-мире будет легко.

+0

Я имел в виду, что он не отправляет сообщение для update_command_ui. Я знаю про пустое сообщение. –