我自定义一个消息
做了一个线程A(trea.h),发送消息
trea.h
#define WM_MY_MESSAGE (WM_USER+100)//定义一个消息号
UINT park(LPVOID pParam)
{
    CMytoolDoc *pDoc = (CMytoolDoc *)pParam;//建立与视图文档的联系
    CMytoolView *pView =(CMytoolView *)pParam;
pView->PostMessage(WM_MY_MESSAGE,0,0);//发送消息
}*******************************************************************
在文件CMytoolView.cpp中调用线程A发送消息
void CMytoolView::Onjian() //调用线程A,发送消息
{
AfxBeginThread(park,this);
}
**************************************************************1、在messView.h中定义一个消息号
#define WM_MY_MESSAGE (WM_USER+100)
class CmessView : public CTreeView
{
protected:
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); //消息响应函数
DECLARE_MESSAGE_MAP()
};
2、在messView.cpp中添加消息映射:
BEGIN_MESSAGE_MAP(CMessView, CView)
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)//我加的消息映射
END_MESSAGE_MAP()
3、接收消息messView.cpp
LRESULT CmessView::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
 AfxMessageBox("收到消息!",MB_OK);
 return 0;

**************************************************************但正常运行后,执行了pView->PostMessage(WM_MY_MESSAGE,0,0);//发送消息
却没有收到消息,也就是 AfxMessageBox("收到消息!",MB_OK)没执行;没弹出对话框"收到消息!",这是怎么回事啊???

解决方案 »

  1.   

    CMytoolView 又 CmessView到底 PostMessage 给哪个
      

  2.   

    顶楼上。
    UINT park(LPVOID pParam) 

        CMytoolDoc *pDoc = (CMytoolDoc *)pParam;//建立与视图文档的联系 
         CMytoolView *pView =(CMytoolView *)pParam; 
        pView->PostMessage(WM_MY_MESSAGE,0,0);//发送消息 

    消息是发送给CMytoolView对象的,CmessView当然收不到
      

  3.   

    pView->PostMessage 意思是说发消息给pView 不是PView发消息给别人 因为后面根本没参数指定发给谁吗 可想而知发给自己了
      

  4.   

    我想PostMessage 给CmessView.
    用CMytoolView调用了发送消息的线程trea.h
      

  5.   

    发送消息 必须指明接收窗体,
    要么 ::PostMessage( hwnd,MESSAGE, w,l);
    要么  wndclass->PostMessage( MESSAGE, w, l );其中hwnd是接收窗体的窗口句柄, wndclass是窗口hwnd的类对象
      

  6.   

    我将trea.h (用于发送消息的线程)改了下
    #define WM_MY_MESSAGE (WM_USER+100)//定义一个消息号 
    UINT park(LPVOID pParam) 
    {     CmessView *pView ; 
    pView->PostMessage(WM_MY_MESSAGE,0,0);//发送消息给CmessView 

    CmessView也收不到消息,这是什么原因?
      

  7.   

    ON_MESSAGE(WM_MSG,OnMsg)  呢
      

  8.   

    在messView.cpp中添加消息映射: 
    BEGIN_MESSAGE_MAP(CMessView, CView) 
    ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)//我加的消息映射 
    END_MESSAGE_MAP() 
      

  9.   

    http://bbs.yjxsoft.net/?u=627
    里面有你想要的
      

  10.   

    首先,AfxBeginThread(park,this);的第二个参数应该是 CMessView 型的对象指针
    在park函数中:
    UINT park(LPVOID pParam) 

        CMessView *pView =(CMytoolView *)pParam; 
        pView->PostMessage(WM_MY_MESSAGE,0,0);//发送消息 
      

  11.   

    错了,应该是:
    UINT park(LPVOID pParam) 

        CMessView *pView =(CMessView *)pParam; 
        pView->PostMessage(WM_MY_MESSAGE,0,0);//发送消息 
      

  12.   

    按上面做了,还是没有反应。
    我怀疑,是不是我在trea.h中发送消息导致消息发送到哪都不知道了?
    是不是必须在CPP文件中发送消息?