现在的位置: 首页 > 综合 > 正文

【PB】Send

2013年08月16日 ⁄ 综合 ⁄ 共 1114字 ⁄ 字号 评论关闭

Send() 

功  能:向窗口发送指定的消息并立即执行相应的事件处理程序。 

语  法:Send( handle, messageno, word, long ) 

参  数:handle:long类型,指定窗口的系统句柄,将向该窗口发送消息; 

messageno:UnsignedInteger类型,指定要发送的消息号;

word:long类型,指定与消息一起发送的word类参数值。如果messageno参数指定的消息不使用该参数,那么将这个参数的值设置为0; 

long:long类型或string,指定与消息一起发送的long型参数值或字符串。

返回值:Long。函数执行成功时返回Windows系统调用SendMessage()的返回值,发生错误时返回-1。如果任何参数的值为NULL,Send()函数返回NULL。

用  法:Send()函数用于向窗口发送非PowerBuilder预定义事件的消息,这个窗口可以是PowerBuilder应用的窗口,也可以是其它应用的窗口。Send()函数直接触发指定窗口相应的事件,执行事件处理程序后返回到调用应用中,这一点与Post()函数不同,Post()函数把发送的消息放置在指定窗口消息队列的尾部,然后返回到应用程序中,它并不等待相应事件事件处理程序的执行。因此,我们说Post()函数采用的是异步方式,Send()函数采用的是同步方式。 

Send()函数的参数handle指定接收消息的窗口句柄,对PowerBuilder窗口来说,使用Handle()函数可以得到该句柄。对其它应用程序的窗口来说,可以调用系统API函数查找窗口并得到相应窗口的句柄。实际上,Send()函数把它的各个参数直接传送给Windows的系统调用SendMessage()。在各种C++开发工具的WINDOWS.H文件中可以查到各消息编号。 

如果应用程序要发送PowerBuilder定义事件(包括预定义事件和用户定义事件),那么使用TriggerEvent()函数既简单有方便。 

当应用程序在long参数位置指定一个字符串时,Send()函数复制一个该字符串的副本,然后将副本的地址传送给指定窗口。 

示  例:1、下面的代码向窗口w_date发送一个向下滚动一页的消息(消息号为277)。 

        Send(Handle(w_date) , 277 , 3 , 0) 

2、下面的代码触发命令按钮cb_OK的clicked事件。 

Send(Handle(parent) , 273 , 0 , Handle(cb_OK)) 

        Cb_OK.TriggerEvent(Clicked!) 

抱歉!评论已关闭.