PostMessage和SendMessage有什么区别?
提示:这里可以添加技术概要
核心源码
PostMessage和SendMessage有什么区别?
PostMessage只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行;
而SendMessage必须等待其他程序处理消息后才返回,继续执行。
PostMessage的返回值表示PostMessage函数执行是否正确;
而SendMessage的返回值表示其他程序处理消息后的返回值。
字号: 大大 中中 小小 教你:Delphi获取句柄sendmessage
查找另外一个窗口的句柄: handle := FindWindow(nil,PChar(‘窗口的标题’));//查到窗体句柄
查找子窗体:childHandle := FindWindowEx(handle,0,‘子窗体类’,‘子窗体标题’);
另外有个枚举子窗体的API,EnumChildWindows(主创体句柄,@回调函数,用户参数);
用这个函数需要自己写一个回调的函数,比如:
function EnumChildProc(ahWND:HWND; param:LPARAM):boolean; stdcall;
sendmessage(handle,message,wl,rl)
unit Unit1;
interface
uses Windows, Messages,Tlhelp32, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var a,b:PAnsiChar;
h:HWND;
begin
h:= FindWindow(nil,‘abc.txt - 记事本’)