SendMessage给父窗口处理自定义消息后返回处理子控件按键消息内存中断,postMessage 没问题求解
BEGIN_MESSAGE_MAP(CMyGridCtrl, CGridCtrl)
ON_WM_LBUTTONDBLCLK()
ON_MESSAGE(WM_CLEAN,OnClean)
END_MESSAGE_MAP()LRESULT CMyGridCtrl::OnClean(WPARAM w,LPARAM l)
{
 CString m_str;
 Pie->GetWindowTextA(m_str);
     SetItemText(m_Psetpoint.y,m_Psetpoint.x,m_str);
 delete Pie;
 Pie = NULL;
 return 0 ;
}void CMyItemEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
 if(nChar == VK_RETURN)
 {
    GetParent()->SendMessage(WM_CLEAN);
 }
 CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
}
此时如果SendMessage后在处理CEdit::OnkeyDown函数时候内存中断 PostMessage 没问题。

解决方案 »

  1.   

    应该和send,post没有关系,还是你处理消息wm_clean时出了问题。使用post没有问题,是因为是非同步的消息。WM_CLEAN还没有处理,就走到onkeydown了
      

  2.   

    问题自己解决了不好意思啊 是因为SENDMESSAGE是直接给窗口处理函数等待处理完成后才返回 在处理函数里面我把Cedit的类 DELETE了所以内存中断了