SendMessage()这个函数同postmessage()有什么不同?区别在哪里(10分)

  • 主题发起人 主题发起人 awfigsk
  • 开始时间 开始时间
A

awfigsk

Unregistered / Unconfirmed
GUEST, unregistred user!
1、请问postmessage()这里面各个参数是什么意思?它可以直接调用吗?前面不用加限
制标识符?它是属性哪个类的?
procedure MyMessage(var Message:TMessage);
begin
...
showwindow(application.handle,SW_SHOW);
postmessage(handle,WM_SETFocus,0,0);
end;
2、SendMessage()这个函数同postmessage()有什么不同?区别在哪里?
SendMessage(ListBox1.Handle, LB_SETHORIZONTALEXTENT, 0, 0);
它的各个参数又是什么意思?
谢谢!
 
S e n d M e s s a g e ( )和P o s t M e s s a g e ( )。这两个函数几乎是一样的,
它们的区别是:S e n d M e -ss a g e ( )直接把一个消息发送给窗口过程,
等消息被处理后才返回。P o s t M e s s a g e ( )只是把消息发送到消
息队列,然后立即返回
 
看看帮助吧。
给你一段简单的程序,自己好好理解。

private
procedure Test(var Msg: TMessage);message WM_USER;

implementation
procedure TForm1.Test(var Msg: TMessage);//注意memo1里text
begin
memo1.Lines.Add(IntToStr(Msg.LParam))
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
postmessage(handle,WM_USER,0,1);
sendmessage(handle,WM_USER,0,2);
postmessage(handle,WM_USER,0,3);
sendmessage(handle,WM_USER,0,4);
end;
 
第一个参数表示要把消息发送给谁
第二个参数表示消息
第三个参数和第四个参数分别代表消息的wParam和lParam
 
为什么我将上面那段代码换成下面这样,memo里面全是0?lParam和wParam这两上参数有何
不同吗?
procedure TForm1.Button3Click(Sender: TObject);
begin
postmessage(handle,WM_USER,1,0);
sendmessage(handle,WM_USER,2,0);
postmessage(handle,WM_USER,3,0);
sendmessage(handle,WM_USER,4,0);
end;
 
procedure TForm1.Test(var Msg: TMessage);//注意memo1里text
begin
memo1.Lines.Add(IntToStr(Msg.WParam))
end;

你应该学会看帮助。
 
哦,真对不起,看了下面忘了上面!真该批评!谢谢各位!
 
后退
顶部