LRESULT CDemo_SendmessageDlg::OnTest(WPARAM wParam,LPARAM lParam)
{ static int i=0;
while (i<100000)
{
// Sleep(100);
++i;
m_Stredit.Format("%d",i);
UpdateData(FALSE);
}
return 0;
}void CDemo_SendmessageDlg::OnButton1()
{
// TODO: Add your control notification handler code here
int i=::PostMessage(m_hWnd,WM_Test,0,0); //SendMessage
CString Str;
Str.Format("%d",i);
MessageBox(Str);
}这儿的测试PostMessage与SendMessage的效果一样
都是OnTest函数返回后,才能够得到结果..
我就郁闷了,这和参考文档上写的不一样呀,文档说PostMessage将消息发送到消息队列后就返回,
但这儿他并没有返回哈...
想通过发送消息的方式来调用函数实现功能所以提前测试了看看用哪个函数,但这两个函数结果都一样的,我晕了....
另外多问一句,如果频繁低使用SendMessage或者PostMessage发送消息对程序的效率会造成影响吗??
{ static int i=0;
while (i<100000)
{
// Sleep(100);
++i;
m_Stredit.Format("%d",i);
UpdateData(FALSE);
}
return 0;
}void CDemo_SendmessageDlg::OnButton1()
{
// TODO: Add your control notification handler code here
int i=::PostMessage(m_hWnd,WM_Test,0,0); //SendMessage
CString Str;
Str.Format("%d",i);
MessageBox(Str);
}这儿的测试PostMessage与SendMessage的效果一样
都是OnTest函数返回后,才能够得到结果..
我就郁闷了,这和参考文档上写的不一样呀,文档说PostMessage将消息发送到消息队列后就返回,
但这儿他并没有返回哈...
想通过发送消息的方式来调用函数实现功能所以提前测试了看看用哪个函数,但这两个函数结果都一样的,我晕了....
另外多问一句,如果频繁低使用SendMessage或者PostMessage发送消息对程序的效率会造成影响吗??
都是OnTest函数返回后,才能够得到结果..
我就郁闷了,这和参考文档上写的不一样呀,文档说PostMessage将消息发送到消息队列后就返回,
但这儿他并没有返回哈...
==================
你从哪儿判断出PostMessage没有直接返回啊?
呵呵,我是这样判断的...
不然的话,他和SendMessage咋区分他们的区别??
=========
应该是立即返回的!