SendMessage函數 將指定的消息發到窗口。它調用特定窗口的窗口處理函數,而且不會當即返回,直到窗口處理函數處理了這個消息。函數
PostMessage函數 將一個消息放入與建立這個窗口的消息隊列相關的線程中,並馬上返回不等待線程處理消息。spa
SendMessage是發送消息,而後等待處理完成返回,但發送消息的方法爲直接調用消息處理函數(即WndProc函數),按照函數調用規則,確定會等消息處理函數返回以後,SendMessage才返回。而PostMessage卻沒有發送消息,PostMessage是將消息放入消息隊列中,而後馬上返回,至於消息什麼時候被處理,PostMessage徹底不知道,此時只有消息循環知道被PostMessage的消息什麼時候被處理了。線程
例句:隊列
向按鈕(Button)發送單擊:消息隊列
SendMessage:循環
SendMessage(Button1.Handle, WM_LBUTTONDOWN, 0, 0);方法
SendMessage(Button1.Handle, WM_LBUTTONUP, 0, 0);消息
PostMessage:
PostMessage(Button1.Handle, WM_LBUTTONDOWN, 0, 0);
PostMessage(Button1.Handle, WM_LBUTTONUP, 0, 0);