API声明如下: Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 参数说明: sendmessage: hwnd:要使用此函数的窗体句柄(或程序句柄) wMsg:要发送的消息 wParam:参数 Iparam:参数 postmessage同上 注意:二者皆可发消息,但postmessage发消息后并不会反回消息.
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
参数说明:
sendmessage:
hwnd:要使用此函数的窗体句柄(或程序句柄)
wMsg:要发送的消息
wParam:参数
Iparam:参数
postmessage同上
注意:二者皆可发消息,但postmessage发消息后并不会反回消息.
postmessage:post,张贴。你到电线杆上张贴广告,只管贴到那里,至于有没有人看就不管了。
PostMessage(Self.Handle,WM_SYSCOMMAND,SC_CLOSE,0);
SendMessage等消息被处理以后才返回,PostMessage是向Application提交一个消息,放到消息队列中等待执行,PostMessage只要一提交成功就返回,不管这个消息有没被处理。
另一个: 只有一个form,一个文本控件(label)
我想要实现:
在程序1 edit1中输入的内容在 程序2的label 中显示出来。
请问我该怎样用sendmessage 和 postmessage 处理? 谢谢大家。
然后对它发WM_SETTEXT消息即可var
S : PChar;
Handle : TWnd;Handle :=........;
GetMem(S);
S:=PChar(Edit.Text);
sendmessage (Handle,WM_SETTEXT,LongInt(S),0);
FreeMem(S);
你这种情况一般是应该用DDE(动态数据交换,现在很少用了),最好是用Socket在不同进程间传递数据.