VB6中的C ++自定义事件缺少参数

时间:2015-10-30 09:48:45

标签: c++ vb6

我们有一个用C ++ 6.0编写的旧ActiveX控件。 它在VB6中运行正常。

现在我想添加一个名为OnNewPosition的自定义事件。 我使用类向导来设置此事件。

结果如下:

EVENT_CUSTOM("OnNewPosition", FireOnNewPosition, VTS_R8 VTS_R8 VTS_R8)

void FireOnNewPosition(double x, double y, double z)
    {FireEvent(eventidOnNewPosition,EVENT_PARAM(VTS_R8  VTS_R8  VTS_R8), x, y, z);}

我也可以解雇此事件

FireOnNewPosition(1 , 2 , 3);

在VB6中,我可以看到事件:

Private Sub G_OnNewPosition()

但缺少参数。 应该看起来

Private Sub G_OnNewPosition(ByVal x As Double, ByVal y As Double, ByVal z As Double)

我已经尝试找出与C ++方面其他类似事件的区别。 无法找到差异:

EVENT_CUSTOM("OnSelect", FireOnSelect, VTS_I4)

void FireOnSelect(long id)
    {FireEvent(eventidOnSelect,EVENT_PARAM(VTS_I4), id);}

这个显示VB6中的参数:

Private Sub G_OnSelect(ByVal id As Long)

我在这里想念什么?

1 个答案:

答案 0 :(得分:0)

好的,没有找到直接解决方案。

似乎它与名称 OnNewPosition 有关。

我尝试了另一个事件名称: NewPosition 。有了这个参数就显示出来了。

然后我再次尝试 OnNewPosition ,而 NewPosition 存在。 结果是一样的,没有参数...

试图删除两者,然后再次尝试 OnNewPosition 。 没有运气。

现在我坚持使用 NewPosition ,因为它有效。