C/C++ SendMessage와 PostMessage의 차이

출처: blog.naver.com/picbuddy/80107712981
void CMsgTestDlg::OnButton1()
{
m_strCall = "";
m_strCall += "SendMessage호출전\r\n";
UpdateData(FALSE);
SendMessage(UM_MSG_SEND, NULL, NULL);
m_strCall += "SendMessage호출후\r\n";
UpdateData(FALSE);
}
void CMsgTestDlg::OnButton2()
{
m_strCall = "";
m_strCall += "PostMessage호출전\r\n";
UpdateData(FALSE);
PostMessage(UM_MSG_SEND, NULL, NULL);
m_strCall += "PostMessage호출후\r\n";
UpdateData(FALSE);
}
LRESULT CMsgTestDlg::OnMessage(WPARAM wParam, LPARAM lParam)
{
m_strCall += "호출함수 실행\r\n";
UpdateData(FALSE);
SleepX(3000);
return 0;
}
void CMsgTestDlg::SleepX(DWORD dwDelay)
{
// ReplyMessage(TRUE);
DWORD dwBeginCount = GetTickCount();
DWORD dwRecentCount;
DWORD dwTime;
while(1)
{
dwRecentCount = GetTickCount();
dwTime = dwRecentCount - dwBeginCount;
if(dwTime >= dwDelay)
break;
else // Message pumping
{
MSG message;
while(::PeekMessage(&message, NULL, 0, 0, PM_REMOVE))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
}
}
}
}


출처: http://blog.naver.com/picbuddy/80107712981