绘出 ShapeLabel 控件

可使用诸如 Circle 和 Line 等图形方法绘出控件,或者使用已有的 ActiveX 控件和 Visual Basic 内在的控件创建自己控件的外观。添加给 UserControl 为其创建外观的那些控件称之为子控件

就象它的名字所表明的一样,ShapeLabel 的外观就是由 Shape 控件和 Label 控件创建的。

注意   本主题是演示创建示例性 ActiveX 控件一系列步骤中的一部分。它是从创建ActiveX 控件开始。

要给 ShapeLabel 添加字控件,请按照以下步骤执行:

  1. 在“工程资源管理器”窗口双击“ShapeLabel”打开它的设计器。

  2. 在“工具箱”上双击 Visual Basic Shape 控件把 Shape 控件放到ShapeLabel 设计器中。如果以前尚未使用过 Shape 控件,把鼠标保持在工具框按钮上直至发现其 ToolTip 是“形状”。

  3. 在“属性”窗口为 Shape 控件设置以下属性值:
    属性
    BorderStyle 0 - 透明的
    FillColor &H000000FF (红色)
    FillStyle 0 - 实线
    Name shpBack
    Shape 2 - 椭圆

    注意   要将诸如 FillColor 和 ForeColor 等的属性设置成指定的颜色,应选择“颜色选择”对话框的“调色板”选项卡。

  4. 在“工具箱’上双击 Label 控件,在 Shape 控件顶部添加一个选项卡。在“属性”窗口为 Label 控件设置以下属性值:
    属性
    Alignment 2 - 居中
    BackStyle 0 - 透明的
    ForeColor &H00FFFFFF (白色)
    Name lblCaption

  5. 抓取底部控点调整此选项卡的高度,使它稍高于所包含的正文。 ShapeLabel 看上去类似这样:

  6. 双击 ShapeLabel 设计器使代码窗口置前,用以下代码替换 UserControl_Resize 事件过程中的代码:
    Private Sub UserControl_Resize()
    ' 变换 Shape 控件的大小
    ' 以便填充 ShapeLabel 的可见表面。
    shpBack.Move 0, 0, ScaleWidth, ScaleHeight
    ' 使 Label 控件垂直居中,
    ' 并使它的宽度与 ShapeLabel 一致。
    lblCaption.Move 0, (ScaleHeight _
    - lblCaption.Height) / 2, ScaleWidth
    End Sub
    
  7. 在对用户控件进行设计时,要记住只能在由控件的 ScaleWidth 和ScaleHeight 约束的区域内工作。这个区域以外的任何事物对用户都是不可见的。此外,客户区的大小将随着用户的想法而改变。于是 Resize 事件就是控件设计中最重要事件之一。

  8. 确保 ShapeLabel 的设计器在前面,然后按下 CTRL+F4 以关闭窗口,使 ShapeLabel 进入运行模式。在“工程”窗口双击 Form1 使其置前。

  9. 现在两个 ShapeLabel 控件将以红色椭圆形式出现,带有居中的 Label1 白色标题。可以调整 ShapeLabels 大小以测试 Resize 事件代码。

详细信息    关于更详细的信息,请参阅“建立 ActiveX 控件”中的“绘制控件”部分。

步骤

本主题是演示创建示例性 ActiveX 控件一系列步骤中的一部分。

请参阅
转到下一步 保存 ShapeLabel 控件的属性值
从头开始 创建 ActiveX 控件