http://www.csdn.net/expert/topic/1035/1036000.xml?temp=.3000452
看看对你有帮助吗?

解决方案 »

  1.   

    有例子程序.
    教程好象没看见有,就算网上有都是下电子图书.
    例子程序如果用VB写OCX,
    http://www.vbgood.com/
    如果用VC写ActiveX或者写ATL的OCX
    可以在 www.codeproject.com
    或者www.codeguru.com里面找.
    另外,多看看书吧,没有书是提不高的.
      

  2.   

    我隻知道 一本  vb com組件  開發的 書
      

  3.   

    有例子程序.
    教程好象没看见有,就算网上有都是下电子图书.
    例子程序如果用VB写OCX,
    http://www.vbgood.com/
    如果用VC写ActiveX或者写ATL的OCX
    可以在 www.codeproject.com
    或者www.codeguru.com里面找.
    另外,多看看书吧,没有书是提不高的.
      

  4.   

    更多内容:
    http://swnet.onchina.net/基本知识:
    自制控件方面的有关知识 在程序中注册和注销 OCX 控件 98-7-20 
    声明(在本例子里使用的是 ComCtl32.OCX,如果是其他,使用相应的名称): 
    Declare Function RegComCtl32 Lib "ComCtl32.OCX" _ 
    Alias "DllRegisterServer" () As Long 
    Declare Function UnRegComCtl32 Lib "ComCtl32.OCX" _ 
    Alias "DllUnregisterServer" () As Long 
    Const ERROR_SUCCESS = &H0 使用: If RegComCtl32 = ERROR_SUCCESS Then 
    MsgBox "Registration Successful" 
    Else 
    MsgBox "Registration Unsuccessful" 
    End If If UnRegComCtl32 = ERROR_SUCCESS Then 
    MsgBox "UnRegistration Successful" 
    Else 
    MsgBox "UnRegistration Unsuccessful" 
    End If 2. 
    建立可下拉选择的属性 
    例如在 BorderStyle 中有以下的四个选择: 
    0 - None 
    1 - Dashed 
    2 - Single Line 
    3 - Double Line 
    4 - 3D 
    首先在控件中定义以下的集合: 
    Enum BorderType 
    None 
    Dashed 
    [Single Line] 
    [Double Line] 
    [3D] 
    End Enum 
    然后就可以把属性的类型设置好: 
    Public Property Get BorderStyle() As BorderType 
    Border = m_BorderStyle 
    End Property Public Property Let BorderStyle(ByVal New_BorderStyle As BorderType) 
    m_BorderStyle = New_BorderStyle 
    PropertyChanged "BorderStyle" 
    End Property 3. 
    缺省值和可选参数 
    VB5 加强了函数参数方面,可用以下的代码实现参数缺省: Property Get Value(Optional index As Long = 1) 
    ... 
    End Property 
    也可使用另一个方法(慢): Property Get Value(Optional index As Long) 
    If IsMissing(index) Then index = 1 
    ... 
    End Property 4. 
    多个参数的属性 
    在自制的控件中,可能需要对某个属性传递多个值: Property Let Test (arg1 As String, arg2 As String, arg3 As Integer) 
    End Property '用以下的方法传递参数: 
    Test(arg1,arg2) = arg3 5. 
    使用数组做属性 
    定义一个 variant 类型的属性,即可用它来做数组。 
    下面定义了一个 CArray 类。 Private m_MyArray As Variant Public Property Get MyArray() As Variant 
    MyArray = m_MyArray 
    End Property Public Property Let MyArray(a As Variant) 
    m_MyArray = a 
    End Property 可用以下的方法使用: Private m_Array As CArray 
    Private mArr(3) As String Private Sub Form_Load() 
    Set m_Array = New CArray 
    mArr(1) = "One" 
    mArr(2) = "Two" 
    mArr(3) = "Three" 
    m_Array.MyArray = mArr() 
    '或者 
    'm_Array.MyArray = Array("One", "Two", "Three") 
    End Sub Private Sub Form_Unload(Cancel As Integer) 
    Dim i As Integer 
    For i = 1 To UBound(m_Array.MyArray) 
    MsgBox m_Array.MyArray(i) 
    Next 
    End Sub