PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数。而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数。而且,PostMessage的返回值表示PostMessage函数执行是否正确;而SendMessage的返回值表示其他程序处理消息后的返回值。这点大家应该都明白。
PostMessage 是异步的,SendMessage 是同步的。
PostMessage 只把消息放到队列,不管消息是不是被处理就返回,消息可能不被处理;
SendMessage等待消息被处理完了才返回,如果消息不被处理,发送消息的线程将一直处于阻塞状态,等待消息的返回。
const
WM_DEALFRONTPRINTMESSAGE = WM_USER + 31;
procedure Twms_outbpound_wavetaskselectprint.setFonhFpBatchCode(
const Value: Integer);
begin
Self.FonhFpBatchCode := Value;
PostMessage(self.Handle,WM_DEALFRONTPRINTMESSAGE,0,0);
end;
procedure Twms_outbpound_wavetaskselectprint.WMdealFrontPrint(
var AMessage: TMessage);
begin
getBackFrontPrintData(FonhFpBatchCode);
end;
end.