Люди,
ситуация следующая : я посылаю сообщение из одного приложения в другое.
Принимающая сторона - обычное SDI. Если я помещаю обработчик сообщения во View, то обработка не происходит (т.е. сообщение уходит в нирвану
). Если же обработчик стоит в MainFrame, то все сразу срабатывает!
Я определила это чисто русским методом тыка, а вот правильного обьяснения этому чуду природы ("Windows" называется
) не знаю!
Вопрос на засыпку - почему это так? Ведь сообщение посылается всем! А значит, оно должно попадать во все обработчики! Может, кто-то знает? Или я делаю что-то не так?
Для обоих приложений есть общий хедер - фаил, в котором стоит:
const CString NEW_SHOWTYPE_MSG_STR = "NEW_SHOWTYPE_MSG";
const UINT NEW_SHOWTYPE_MSG = ::RegisterWindowMessage(NEW_SHOWTYPE_MSG_STR);
На стороне, посылающей сообщение, стоит :
::PostMessage(HWND_BROADCAST, NEW_SHOWTYPE_MSG, (WPARAM)m_nMWShowType, (LPARAM)NULL);
На принимающей :
ON_REGISTERED_MESSAGE (NEW_SHOWTYPE_MSG , OnNewShowTypeMsg)
...
LRESULT CMainFrame::OnNewShowTypeMsg(WPARAM wParam , LPARAM lParam)
{...}