发送自定义消息如果传递参数解决方法

发送自定义消息如果传递参数
CString   url= "消息参数 ";
::PostMessage(this-> m_hWnd,WM_MYMESSAGE,0,(LPARAM)&url);//   发送一个自定义消息

//下面是自定义消息处理函数
LRESULT   CSplitDlg::OnMyMessage(WPARAM   wparam,LPARAM   lparam)
{
CString   str;
str=(CString)lparam;
AfxMessageBox(str);
return   1;
}
为什么str弹出的值是一串乱字符呀?

------解决方案--------------------
你的这个功能只能使用SendMessage,因为PostMessage是异步方式,只是将这个消息丢进消息队列,在你调用完成了PostMessage后url对象已经被释放了,在收到的消息地方已经是一个无效的对象了,如果想使用PostMessage那么请使用CString * url = new CString( "消息参数 ");
::PostMessage(this-> m_hWnd,WM_MYMESSAGE,0,(LPARAM)url);// 发送一个自定义消息
消息处理函数
LRESULT CSplitDlg::OnMyMessage(WPARAM wparam,LPARAM lparam)
{
CString * str = (CString *)lparam;
AfxMessageBox(str);
delete str;//释放参数
return 1;
}