PostMessage 和SendMessage的区别主要在于是否等待其他程序消息处理。PostMessage只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行;而SendMessage必须等待其他程序处理消息后才返回,继续执行。这两个函数的返回值也不同,PostMessage的返回值表示 PostMessage函数执行是否正确,而SendMessage的返回值表示其他程序处理消息后的返回值。
1. SendMessage函数要等到消息被处理后才返回
PostMessage 消息发出后马上返回
2. PostMessage发向目标窗口的消息一定会进入消息队列
SendMessage向同一线程的窗口发消息,不会进入消息队列,
SendMessage向其他线程的窗口发消息,则会进入消息队列,
3. PostMessage的返回值表示PostMessage函数执行是否正确,
SendMessage的返回值表示其他程序处理消息后的返回值