PB Send 函数

Send 函数
向窗口发送指定的消息并立即执行相应的事件处理程序

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

参数:
handle:long类型,指定窗口的系统句柄,将向该窗口发送消息
messageno:UnsignedInteger类型,指定要发送的消息号
word:long类型,指定与消息一起发送的word类参数值。如果messageno参数指定的消息不使用该参数,那
么将这个参数的值设置为0
long:long类型或string,指定与消息一起发送的long型参数值或字符串

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

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

因此,我们说Post()函数采用的是异步方式,Send()函数采用的是同步方式。
Send()函数的参数handle指定接收消息的窗口句柄,对PowerBuilder窗口来说,使用Handle()函数可以得到该句柄。

对其它应用程序的窗口来说,可以调用系统API函数查找窗口并得到相应窗口的句柄。

实际上,Send()函数把它的各个参数直接传送给Windows的系统调用SendMessage()。

在各种C++开发工具的WINDOWS.H文件中可以查到各消息编号。

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

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

发送示例:
long ls_res
ls_res = Send(long(5572472),1024,101,0)

// 5572472 需要接收消息的窗口句柄,可通过handle或FindWindowA获得
// 1024 事件ID(EventID) pbm_custom01 (pbm_custom02 > 1025) 以此类推
// 101 执行的逻辑编号
// 0 参数值

接收示例:
在这里插入图片描述
Choose Case lparam
Case 101
This.Hide()
Case 102
This.Show()
End Choose

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值