zoukankan      html  css  js  c++  java
  • Delphi WinAPI 消息函数 SendMessage函数和 PostMessage的区别

    SendMessage函数 将指定的消息发到窗口。它调用特定窗口的窗口处理函数,并且不会立即返回,直到窗口处理函数处理了这个消息。

    PostMessage函数 将一个消息放入与创建这个窗口的消息队列相关的线程中,并立刻返回不等待线程处理消息。

    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);

  • 相关阅读:
    0x05 排序
    bzoj3032: 七夕祭
    0x04 二分
    bzoj2783: [JLOI2012]树
    bzoj3192: [JLOI2013]删除物品
    bzj1106: [POI2007]立方体大作战tet
    POJ2299Ultra-QuickSort
    POJ3080Blue Jeans
    POJ3253Babelfish
    POJ1611The Suspects
  • 原文地址:https://www.cnblogs.com/guorongtao/p/11504384.html
Copyright © 2011-2022 走看看