VFP BINDEVENT( ) 函数

VFP BINDEVENT( ) 函数

提供当一个事件发生时执行用户代码(一个对象的方法)的能力。
下面语法的第一种形式,可以使用 BINDEVENT( ) 从 Visual FoxPro 本身对象到其它 Visual FoxPro
对象来绑定事件、属性或方法。

BINDEVENT(oEventSource, cEvent, oEventHandler, cDelegate [, nFlags])

参数

oEventSource
指定事件源,它必须是一个有效的 Visual FoxPro 对象。

hWnd
指定接收
Windows 消息窗口的整数句柄。如果传递了一个 0 的值,则指定的事件(nMessage)被所有窗口俘获。可以用 hWnd 属性 (Visual FoxPro)
来绑定通过
_VFP、_SCREEN 和表单实例接收到的 Windows Messages (事件)。ActiveX 控件也有 hWnd 属性。

cEvent
指定要绑定事件、方法或属性的名称。

nMessage
指定要俘获的有效 Windows 消息。关于 Windows
消息的信息,参见 MSDN (the Microsoft Developer Network)。

oEventHandler
指定对象,必须是一个有效的 Visual FoxPro 对象,处理该事件。

cDelegate
指定方法或“代理”,为 oEventHandler 处理该事件。该代理方法必须与 cEvent
中指定的事件有相同的参数。可以调用 AEVENTS( )
函数来获取引用到该事件源的对象。如果该代理方法没有足够的参数来处理通过该事件传递来的参数,Visual FoxPro 产生一个错误。当俘获的是
Windows Message (Win Msg) 事件时,cDelegate 方法必须包含一个 PARAMETERS
指令来接收传来的四个参数。参数的格式与 Windows WindowProc
函数的格式一致。有关 Windows WindowProc
函数的信息,参见 MSDN (the Microsoft Developer Network)。该方法必须返回一个整数值。

PUBLIC oHandler
oHandler=NEWOBJECT("myhandler")
DO (_browser)
BINDEVENT(_SCREEN,"Resize",oHandler,"myresize")

DEFINE CLASS myhandler AS Session
   PROCEDURE myresize
      IF ISNULL(_obrowser) THEN
         UNBINDEVENTS(THIS)
      ELSE
         _obrowser.left = _SCREEN.Width - _obrowser.width
      ENDIF
   RETURN
ENDDEFINE
Bindevent(lopgf.Pages(m.lnyy),"RightClick",myapp,"reevent_page_RightClick")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值