首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

OCX组件的事件如何获取值

2012-03-25 
OCX组件的事件怎么获取值我从厂家获得一个OCX组件,其中有个函数A,调用它是会触发事件OnA(long s, short* v

OCX组件的事件怎么获取值
我从厂家获得一个OCX组件,其中有个函数A,调用它是会触发事件OnA(long s, short* v, long length)。
我在.net中调用此组件,名字为wap
这个OnA事件在.net中被包装成,wap_OnA(object sender, AxWPALMLib._DWPalmEvents_OnCaptureEvent e),
其中e内包含属性int型s,short型v,int型length
问题:
1、属性 v 在ocx组件是数据的指针,在.net中却变成了short型的。
2、函数A调用后会多次触发OnA事件并返回 s 的值,请问事件OnA怎么能获取连续的 s 值。

在C++bulider中能执行通过,但是在.net中却不能获取值。

[解决办法]
使用out关键字,然后传递e的值,然后再通过其他全局变量获取e.s的值。
代码如下:
//定义变量
private AxWPALMLib._DWPalmEvents_OnCaptureEvent ev = new AxWPALMLib._DWPalmEvents_OnCaptureEvent();
object a = new object();

声明事件处理函数的时候这样:
wap_OnA(object sender, out AxWPALMLib._DWPalmEvents_OnCaptureEvent e)
调用时这样:
wap_OnA(a, out ev)

执行完后用ev.s获取s的值。

这样就可以了。
希望能帮到你。
[解决办法]

探讨

使用out关键字,然后传递e的值,然后再通过其他全局变量获取e.s的值。
代码如下:
//定义变量
private AxWPALMLib._DWPalmEvents_OnCaptureEvent ev = new AxWPALMLib._DWPalmEvents_OnCaptureEvent();
object a = new object();

声明事件处理函数的时候这样:
w……

热点排行