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 没问题。
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 没问题。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货