关于消息SendMessage在哪里响应的有关问题

关于消息SendMessage在哪里响应的问题
本帖最后由 xiao_dong_dong 于 2014-09-18 10:37:16 编辑
大家好,我想请教一下关于SendMessage的问题
用mfc做的
主对话框类是MYprogramDlg.cpp
另外自己定义了一个类CWatch
在CWatch.h里定义
CWnd *m_pWnd
CWatch.cpp里:
BOOL CWatch::Create(CWnd *pWnd, WORD nData1 , WORD nData12, WORD nData13)
{m_pWnd = pWnd;}
函数SendButton()
{
::SendMessage(m_pWnd->GetSafeHwnd(),WM_SENDDATA,mID,0);
}
我的理解是,消息发给了CWatch这个类,所以该消息的响应函数应该是在CWatch里处理
但事实上,我看别人的程序,该消息是在主对话框类MYprogramDlg.cpp里来实现消息响应的ON_MESSAGE(WM_SENDDATA,OnSendData)
请大家给我讲讲::SendMessage(m_pWnd->GetSafeHwnd(),WM_SENDDATA,mID,0);的消息到底是应该在哪个类里面响应,不应该是指针指向的那个类吗?
谢谢大家了
------解决思路----------------------
这个我觉得你不应该有疑问啊,消息是谁发送给谁,你自己居然不清楚?接收消息者,要实现消息响应函数啊。
你这个SetButton是谁的函数呢?
应该是CWatch发送给主窗口,因为CWatch不是个窗口类吧,不具备消息循环,只能向外发送消息,所以需要主对话框响应