SendMessage与直接调用消息响应函数的区别
科学家 2014-02-24 01:55:00 SendMessage就是发送消息,并且死等消息被处理完毕才走下一步代码。
PostMessage则是消息发完走人,并不等待消息处理完毕。
于是我认为,SendMessage与直接调用消息响应函数是一样的(如果消息响应函数是public的话),但今天我发现不一样了:我在线程内想做一些事情,通过两种方式做,效果竟不一样。
#define WM_MYMSG xxxxx
消息响应函数:
OnMyMsg(WP.., LP...)
{
//这个消息响应函数内部又调用了SendMessage发送其他消息做其他的事情
SendMessage(WM_其他消息,.....);
}
方法一:
//直接调用消息响应函数
OnMyMsg(0,0);//---------------------------死机,几乎每次都死机。
方法二:
SendMessage(m_hWnd,WM_MYMSG,0,0);//-------没问题,很健壮,经得起疯狂点击蹂躏
求解:SendMessage是不是被系统插手调度过了,所以不死机?求详解!