彩票走势图

自制控件方面的有关知识

转帖|其它|编辑:郝浩|2010-10-19 15:26:57.000|阅读 499 次

概述:本文主要介绍自己开发控件需要注意的事项,希望对大家有帮助。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

1.在程序中注册和注销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

 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:博客转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP