例子的来源是MSDN,很早在MSDN上面看到的,后来找不到了,这次是从MSDN中VB例程cofee例程上摘录的,原理相同,都是用active,自定义事件.
1创建一个Active Exe工程,我叫pro_comm_pro吧,
2 添加一个标注模块,Module1.bas:
Public gCLS1 As cls1 '全局变量,保存对分发消息的类对象cls1的引用,以前没有定义为Public,不可以运行
3 添加类cls1.Cls
修改这个类的属性: Instancing = 2 'PublicNotCreate,不可以从外部进程创建
其他属性使用默认
4 添加如下代码到cls1.Cls:
- VB code
-
5 添加一个类clsH.Cls,这个类仅仅是个接口,没有多少功能的.属性默认,代码如下:
- VB code
-
Public Property Get GetCls() As Variant If gCLS1 Is Nothing Then Set gCLS1 = New cls1 End If Set GetCls = gCLS1 End Property
...
这个工程就完成了,生成exe文件吧,我叫的是pro_comm_pro.exe
另外新建一个标注工程
1 新建工程
2工程->引用->浏览,选择我们pro_comm_pro.exe
3 在form1添加个command1,添加如下代码在form1.frm里面,呵呵:
- VB code
-
Dim WithEvents ss As cls1 ' ss,事件通知我们数据改变 Dim cc As clsH ' 连接器对象 ' 按这个按钮,修改cls1(ss)的属性值 Private Sub Command1_Click() ss.mVal = Time End Sub ' 初始连接器cc,初始cls1,事件分发对象ss Private Sub Form_Load() Set cc = New clsH Set ss = cc.GetCls End Sub ' 接受到数据改变事件 Private Sub ss_ValChange(vData As String ) Form1.Caption = ss.mVal End Sub
4 编译生成工程吧,我交cli.exe运行2个cli.exe,点击command1,会看到,两个窗口同时改变,需要更多同步信息
原文链接:https://www.f2er.com/vb/261279.html