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弹出的值是一串乱字符呀?

解决方案 »

  1.   

    ON_MESSAGE(WM_MYMESSAGE, OnMyMessage);
      

  2.   

    楼上是什么意思.我是说怎样传递参数.这个已有了.
    BEGIN_MESSAGE_MAP(CSplitDlg, CDialog)
    //{{AFX_MSG_MAP(CSplitDlg)
    ON_MESSAGE(WM_MYMESSAGE,OnMyMessage)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
      

  3.   

    你的这个功能只能使用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;
    }