http://www.csdn.net/expert/topic/1035/1036000.xml?temp=.3000452
看看对你有帮助吗?
看看对你有帮助吗?
解决方案 »
- 关于CAB文件打包所需文件
- 高分求解下面代码!!!!!!!!!!!!!!!
- 请教各位高手:如何在自定义多媒体播放窗口中响应鼠标事件。
- 文件拷贝的问题
- 关于 利用Adobe Illustrator 把.AI文件 轉成 .pdf(200分)
- 谁能告诉我哪个网站有好的源码下载?
- 请各位高手进来看一下,这个错误是怎么回事
- 在对象浏览器里如果一个类只有类名,却没有任何属性和方法,说明什么?
- 这个语法为什么是做的????
- 在VB中打印一数字字符串时,能否控制字符间距,急!!!!!!!
- DLL中为什么writeproperty和readproperty事件都无法触发了?
- 将查询的结果集保存成文件,除了下面的方法,还有有有更好地?
教程好象没看见有,就算网上有都是下电子图书.
例子程序如果用VB写OCX,
http://www.vbgood.com/
如果用VC写ActiveX或者写ATL的OCX
可以在 www.codeproject.com
或者www.codeguru.com里面找.
另外,多看看书吧,没有书是提不高的.
教程好象没看见有,就算网上有都是下电子图书.
例子程序如果用VB写OCX,
http://www.vbgood.com/
如果用VC写ActiveX或者写ATL的OCX
可以在 www.codeproject.com
或者www.codeguru.com里面找.
另外,多看看书吧,没有书是提不高的.
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