我正在尝试在VB6 Active X EXE中创建OCX控件的第二个实例。 OCX控件的第一个实例由ActiveX EXE中的表单包含并在其中可见。我正在尝试将第二个实例创建为ActiveX EXE类的成员。该实例将不包含在表单中,并且在屏幕上不可见。我已经能够声明实例,但是找不到使用New运算符初始化该实例的正确语法。
ActiveX VB6模块内部的声明
InformationFlow
ActiveX_Initialize()函数中的初始化
Private m_ZoomSigPlus2 As SIGPLUSLib.sigPlus
编译错误:无效使用New关键字
我尝试查看如何初始化作为表单一部分的实例,但是当控件包含在表单中时,似乎没有明确的 New 操作。形式的声明为
set m_ZoomSigPlus2 = New SIGPLUSLib.sigPlus
答案 0 :(得分:1)
似乎创建与表单不关联的OCX控件实例的正确方法是使用CreateObject函数。
Private m_ZoomSigPlus2 As Object
64 Set m_ZoomSigPlus2 = CreateObject("SIGPLUS.SigPlusCtrl.1")
66 m_ZoomSigPlus2.InitSigPlus
有人问我这样做的原因。 OCX控件可以与一些捕获传入数据的外部硬件一起使用。 OCX还为传入数据集提供了一些处理方法。但是,完成该处理后,需要关闭传入数据收集。通过创建第二个实例,我应该能够在捕获所需的传入数据期间处理数据集。有人可能会争辩说,OCX的另一种更具凝聚力的设计可以消除创建第二个实例的需要,但是目前还没有重新设计OCX的想法。