在视图类中用sendmessage把指向数据库中一项的指针m_pSet传出,CWithDrawDlg::OnReceiveSet(WPARAM wP,LPARAM lP)函数进行接收.在CWithDrawDlg类中用 ON_MESSAGE建立好了消息映射.debug时也会跳进函数,但wP却接收不到数据,为0.不知道怎么回事?sendmessage()前面是不是必须要有发送消息的窗口的指针,但在View类里怎么写?写主窗口的指针AfxGetMainWnd()->SendMessage(),好像还是不对.

解决方案 »

  1.   

    要传送的指针应该用new进行动态分配,在OnReceiveSet中处理完后delete掉。
      

  2.   

    问题不在于指针动态分配,在LPARAM传送的long型数据也接收不到。
      

  3.   

    当然写你那个对话框的,比如对话框是
    C..Dlg m_dlg;
    m_dlg.SendMessage(...);
    不过模式对话框显然不行,应该是无模式的、已经创建的对话框。
      

  4.   

    回wangchentong:我是参考了书做的,问题不是简单的自定义消息,别的我也做过.
    回Mackz:我是在视图类的成员函数中往模式对话框送数据,怎么可能是m_dlg.SendMessage??
    再次请教大家...
      

  5.   

    建议new一个对话框实例pDlg,然后
    ::PostMessage(pDlg->m_hWnd, message, wParam, lParam)
      

  6.   

    问题是sendmessage前面应该加的是发送窗口的指针吧?而且调试的结果是可以跳到消息相应函数里面的,只是数据收不到,为0