在VB中编写自定义控件时,想要对控件产生的对象实例进行操作的时候,会有一些难度,我采用了一种折中的办法,也许效率不高,不过至少可以使用。就是利用自定义控件的HDC属性。
给对象添加一个HDC属性,把控件本身的HDC值传递出去。
这个属性是只读的。
Public Property Get hDC() As Long hDC = UserControl.hDC End Property
|
然后建立一个函数来返回对象实例:
然而尝试以后,还是不行,HDC似乎在运行过程中是会变化的,我增加一个变量,HdcV来保存,然后在函数中调用。
'返回控件自身的实例 Public Function AppMe() As Object On Error Resume Next Dim I As Long For I = 0 To UserControl.ParentControls.Count - 1 If TypeOf UserControl.ParentControls(I) Is UCSplit Then If UserControl.ParentControls(I).hDCV = pHdcV Then Set AppMe = UserControl.ParentControls.Item(I) Exit For End If End If Next I End Function
|
阅读(354) | 评论(0) | 转发(0) |