我想把ipBuf的信息 发送到另外一个对话框窗口(句柄是hwnd),我想在发送窗口定义消息 WM_RECVIP,
在接收窗口 定义 消息响应函数,  那么消息 和响应函数 的关联 应该怎么声明呢...求解..
先谢谢大家了... char  ipBuf[20];
m_list1.GetItemText(Row,1,ipBuf,20);
HWND hwnd =::FindWindow(NULL, "Dialog");
if(FALSE==::PostMessage(hwnd,WM_RECVIP,0,(LPARAM)ipBuf))
{
AfxMessageBox("post ip failed.");
}

解决方案 »

  1.   

    (LPARAM)ipBuf这个地址应该无效了
    试试globalalloc+duplicatehandle
      

  2.   

    1、先声明你的消息相应函数,一般是这样afx_msg LRESULT OnMsg(WPARAM wp, LPARAM lp);
    格式好像是这样,名字你自己定义2、增加消息映射ON_MESSAGE(msg_id, msg_func)这样就可以在函数实现中做你需要做的事情了。不过你这里有一个问题是,你发送过去的指针是无效的,要注意你的参数的生命周期
      

  3.   

    使用 SendMessage,使用 ON_MESSAGE,记得 #define 的时候,大于 WM_USER+100
      

  4.   

    关于自定消息可以参看这个
    http://zhidao.baidu.com/question/166992657.html?fr=ala0
      

  5.   

    第一:双方都要识别这个消息,比如都知道WM_RECVIP == (WM_USER+500)
         或者RegisterWindowMessage和ON_REGISTERED_MESSAGE第二:用SendMessage,因为指针的生命周期第三:如果是跨进程,可能会涉及到内存地址映射