SendMessage的使用(100分)

  • 主题发起人 主题发起人 liuguilg
  • 开始时间 开始时间
L

liuguilg

Unregistered / Unconfirmed
GUEST, unregistred user!
function SendMessage(hWnd: HWND; Msg: UINT;wParam:WPARAM; lParam: LPARAM):LRESULT;stdcall;
在网上看了一 段时间资料 很不明白
这里我只明白第一个参数是窗体句柄,后面3个参数是什么意思;

这里是网上的两个列子
1、系统发消息关闭程序 SendMessage(Handle, WM_CLOSE, 0, 0);
这里怎么后面两个参数为什么是0;

2、动开始菜单 Sendmessage(Application.Handle,WM_SYSCOMMAND,SC_TASKLIST,0);
这里参数怎么只有一个是0,中间两个是什么意思
 
怎么不查查WINDOWS API
SendMessage, SendMessageBynum, SendMessageByString

VB声明
Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
Declare Function SendMessageBynum& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Declare Function SendMessageByString& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String)
说明
调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, SendMessageByString是该函数的“类型安全”声明形式
返回值
Long,由具体的消息决定
参数表
参数 类型及说明
hwnd Long,要接收消息的那个窗口的句柄
wMsg Long,消息的标识符
wParam Long,具体取决于消息
lParam Any,具体取决于消息
 
我来帮你解释一下吧:
function SendMessage(hWnd: HWND; Msg: UINT;wParam:WPARAM; lParam: LPARAM):LRESULT;stdcall;
在Delphi中,函数SendMessage可向从TWinControl继承下来的类发送消息,TWinControl.Handle就是用来接收消息的hWnd,消息是要通信双方的信号,比如说:WM_CLOSE,对方接到消息后就知道要你关闭了,你不需要其它参数了,但有时一个消息比较大概,只告诉你做某一方面的事,那么还需要其它参数的协住,那就是wParam,lParam了,
不同消息的参数意义是不同的,具体用时可查delphi中的 Windows SDK帮助
 
to: danng
说的不错!
 
function SendMessage(hWnd: HWND; Msg: UINT;wParam:WPARAM; lParam: LPARAM):LRESULT;stdcall;

hWnd: HWND;//接受消息的对象实例句柄
Msg: UINT;//消息名称或叫消息ID码.
wParam:WPARAM;//消息附加信息,一个INTEGER类型
lParam: LPARAM//消息附加信息,一个integer类型

sendmessage()方法发送的消息,会被加入到对象实例自己的消息队列中去等处理,如果对象不处理这个消息,在D的消息机制里,会分发给祖先类处理,直到消息被子处理或是被忽略(没有对应的处理过程),SENDMESSAGE()要等到消息被处理后才返回.
另一个发送消息的方法:postmessage()与sendmessage()类似,区别在于,POSTMESSAGE()只发送消息组对象实例,但不会把消息加入到对象实例的消息队列中,并且,发完消息就返回了。
 
sendmessage(‘接收窗口句炳','消息标识','消息特点1','消息特点2'),返回一个长整形数
消息特点1,消息特点2和返回值对于不同的消息有不同的含义
 
很谢谢大家的解答;
我有了个大概的了解,
比如:我有两个软件都打开了,我想同1软件的Button1来触发,是2软件实现Form2.show使form2显示出来
想这个该具体什么来实现?是否要用到SendMessage?
 
你在软件2里面肯定有相应的按钮或者菜单来触发,或者就是消息.
 
现在就是怎么具体来实现的问题
比如:我有两个软件都打开了,我想同1软件的Button1来触发,是2软件实现Form2.show使form2显示出来
想这个该具体什么来实现?是否要用到SendMessage?该怎么来做实现他
 
现在就是怎么具体来实现的问题
比如:我有两个软件都打开了,我想同1软件的Button1来触发,是2软件实现Form2.show使form2显示出来
想这个该具体什么来实现?是否要用到SendMessage?该怎么来做实现他
 
Handle是句柄
第二个是消息,
第三个是第二个参数的补充,我觉得.
第四个我看大部都是0吧,当然有它具体的含义.感觉一般用不上啊!
 
现在就是怎么具体来实现的问题
比如:我有两个软件都打开了,我想同1软件的Button1来触发,是2软件实现Form2.show使form2显示出来
想这个该具体什么来实现?是否要用到SendMessage?该怎么来做实现他
 
现在就是怎么具体来实现的问题
比如:我有两个软件都打开了,我想同1软件的Button1来触发,是2软件实现Form2.show使form2显示出来
想这个该具体什么来实现?是否要用到SendMessage?该怎么来做实现他
 
我见议你,看一看<<Delphi6 开发向导>>
 

Similar threads

后退
顶部