登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

miaozk2006

点滴积累与收藏:关于技术,关于生活

 
 
 

日志

 
 

VB制作OCX控件的步骤  

2010-12-18 22:07:54|  分类: 编程-VB |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

下面列出制作OCX控件的步骤:
一:新建OCX
打开VB 选择新建工程在对话框中选择ActiveX 控件(如图一(map1.gif))打开后会见一空的文档这就是 OCX控件的初始界面。想看一看空OCX控件的效果吗?选择“添加工程”选中标准EXE,这时你就可以像调用其它控件一样在左边的工具栏里选择刚才新建的OCX控件图标放在标准的EXE文档中看一看有什么效果!(什么也没有!) 自然因为刚才的OCX文档是空的嘛(废话太多,数个痰盂向我飞来)!
二:创建界面
  一般我们用VB创建OCX控件都是在我们的控件里添加其它的控件来组合成一个完整的控件(也可以让它只完成某种算法)比如:你可以在上面添加一按钮、编辑框这时你再用第一部的方法看一看效果,是不是控件上多了一个按钮和一个编辑框。
三:OCX属性
  一个OCX控件有许多的属性,比如控件背景是否透明(BackStyle),控件是否可以获得焦点 (CanGetFocus)等。这些属性都可以在控件的“属性框”中找到。
四:添加事件
  一个控件有很多事件如:Click、MouseDown、MouseUp、MouseMove等。要触发这些事件都需要你加入代码。在控件的声明处加入Public Event Click()就表明该控件有一“Click”事件。自己编写的控件有什么事件就在声明处加几条事件。关于触发事件是使用“RaiseEvent”语句来完成的如:RaiseEvent 事件名(参数)。
 
五:用户属性
  一个控件应有许多属性供用户设置如:控件的背景色、控件要显示的图形等。它们通常用Property Get和 Property Let两条语句来完成。前者表示给用户显示一个属性的值,后者表示用户设置一个属性的值。 六:保存属性和读取属性
  当属性被用户更改后需要将该属性值保存,以便控件运行时读取更改后的属性值。它们分别用 ReadProperty和WriteProperty两种方法来完成。前者表示读取一个属性值,后者表示写入一个属性值。
  好了一个简单的OCX控件制作方法大概就需要以上几步就可完成。下面本人将编写一个简单的OCX控件供大家参考。此控件的功能是在控件中显示一个圆,当鼠标移到控件上的时候控件上的圆便会在鼠标不离开控件的前提下跟随鼠标移动。
  新建一OCX控件,将控件的BorderStyle属性改为1,再加入一SHAPE控件将其形状改为Circle(如图二(map2.gif)) 添加以下代码:


Public Event Click()'定义该控件要产生的事件
Dim CircleX As Integer, CircleY As Integer
Private Sub UserControl_Click()
    RaiseEvent Click'触发Click事件
End Sub
Private Sub UserControl_Initialize()
    CircleX = Shape1.Width / 2
    CircleY = Shape1.Height / 2
End Sub
Private Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Shape1.BackColor = RGB(0, 0, 255)
End Sub
Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim MoveX As Integer, MoveY As Integer
    MoveX = X - Shape1.Width / 2
    MoveY = Y - Shape1.Height / 2
    If (MoveX < 0) Or (MoveX + Shape1.Width > UserControl.ScaleWidth) Or _
       (MoveY < 0) Or (MoveY + Shape1.Height > UserControl.ScaleHeight) Then Exit Sub
    Shape1.Move MoveX, MoveY
End Sub
Private Sub UserControl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Shape1.BackColor = RGB(255, 0, 0)
End Sub
Property Get PosX() As Integer '取得CircleX的值显示给用户
    PosX = CircleX
End Property
Property Let PosX(ByVal New_X As Integer) '把用户写入的值设置到OCX控件内部
    If (New_X < Shape1.Width / 2) Or _
       (New_X > UserControl.ScaleWidth - Shape1.Width / 2) Then
        MsgBox ("圆的X值超出界限了")
    Else
        CircleX = New_X
        Call UserControl_Resize
    End If
End Property
Property Get PosY() As Integer
    PosY = CircleY
End Property
Property Let PosY(ByVal New_Y As Integer)
    If (New_Y < Shape1.Height / 2) Or _
       (New_Y > UserControl.ScaleHeight - Shape1.Height / 2) Then
        MsgBox ("圆的Y值超出界限了")
    Else
        CircleY = New_Y
        Call UserControl_Resize
    End If
End Property
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    CircleX = PropBag.ReadProperty("CircleX", Shape1.Width / 2) '将用户设置的值读出来
    CircleY = PropBag.ReadProperty("CircleY", Shape1.Height / 2) '同上
    Call UserControl_Resize
End Sub
Private Sub UserControl_Resize()
    Shape1.Move CircleX, CircleY
End Sub
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty("CircleX", CircleX, Shape1.Width / 2) '将用户设置的值保存
    Call PropBag.WriteProperty("CircleY", CircleY, Shape1.Height / 2) '同上
End Sub

 摘自:网络整理


相关参考


关于三个概念:ActiveXOLECOM

注册ActiveX控件的几种方法() 分享

VB 单击ListView控件某列表头进行排序


控件关文章:


VB表格控件总览与例程分析

VB 设置控件边框颜色(如:ListTextPicture)

VB控件注册 - 利用资源文件将dllocx打包进exe文件

VB的,经常注册和反注册OCX控件和DLL

VB表格控件总览与例程分析

根据窗体自动调整窗体内控件大小 注:实用,可以直接引用

用户控件制作讲解与实例

VB制作OCX控件的步骤

【引用】窗口处理技巧大全 vb(窗体控件)

VB让控件可以当标题栏拖动

VB 调用腾讯截图控件CameraDLL.dll

VB表格控件总览与例程分析

VB表格控件总览与例程分析

Mp3Play.ocx控件让音乐之声响起来

为系统加载右键注册控件选项【VB 注册控件】

VBMsFlexGrid控件的使用细则

点击MSFlexGrid数据控件的标题进行数据排序


相关参考


VB查找替代字符串的函数

VB换行气泡提示类

VB/VBA通用路径选择对话框

ASCII码表0-255完整版 附详细注释

VBKeyAscii

VB取得TextBoxRichTextBox光标所在的行和列(支持汉字)

VB取得TextBoxRichTextBox光标所在的行和列(支持汉字)

VB如何实现Undo(撤消)功能

VB计算文本文件的行数

VB获取快捷方式原文件路径

微软 Small Basic 简体中文版 已经发布了

VB操作Excel 非常详细 [网摘]

VB如何判断文件正被占用/已被打开

VB添加listbox 的水平卷动轴

VB打开资源管理器并指定文件

VB根据窗体自动调整窗体内控件大小 注:实用,可以直接引用

VB中的指针技术

Visual Basic编程常见问题及解答(1

Visual Basic编程常见问题及解答(2

Visual Basic编程常见问题及解答(3

VisualBasic变量、常数和数据类型及过程概述

VB6的后期绑定和前期绑定

VB用户控件制作讲解与实例

VB制作OCX控件的步骤

VBFSO的调用的两种方法

VB操作EXCEL

VB判断文件及目录的存在性

VB网站(最新、经典源代码、技术文章、基础知识)

VB得到指定文件夹下的文件列表

VB产生随机任意大小文件挤满硬盘

VB文件的读写操作

VB创建超链接 打开指定网站的几种方法

VB 源码 删除重复行程序 函数

VB 计算自己程序段所用时间

VB 获取路径名各部分 (获取文件路径,获取文件名,获取文件扩展名)自编

几行VB代码拿下注册表

VB 在浏览器中打开指定网址

VB窗口置顶

vb ListBox 之中点击右键弹出菜单

  评论这张
 
阅读(2365)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018