用户控件制作实与详解.docVIP

  • 4
  • 0
  • 约 43页
  • 2016-11-26 发布于贵州
  • 举报
用户控件制作实与详解

用户控件制作实例与详解 开场白:这是笔者系列文章的第一篇,本来早已上传,但我却在文章列表中找不到它,难道被谁吃掉了?只好再传一次。 用户控件制作实例与详解--基础篇(1)   --从炫酷按纽做起   我相信各位与我一样,经常在网上看到别人发布的多彩多姿的按纽控件,但总有不尽如意的地方, 那么,就让我们自己来制作多风格的按纽控件,一起来体验成功的乐趣吧!   为了便于表述,下面把在用户控件页面中进行的设计活动称为“控件设计”,把在窗体页面中进行 的设计活动称为“程序设计”,把进行程序设计的程序员称为“中间用户”,把最后使用程序的用户称 为“最终用户”。   制作这个按纽控件要达到的目的:①形状多样;②背景颜色多样(色彩渐变);③文本标题显示多 样(运用字符显示特技);④能够显示真彩图片。   新建一个工程,添加一个窗体(用于测试用户控件),再添加一个 ActiveX 控件,这个控件就是用 户控件,也就是我们的工作对象。这时在工程管理器中可以看到工程多出了一个类别:UserControls, 窗体在 Forms 列表中,而用户控件在 UserControls 列表中。好,我们在用户控件的属性窗口中将它的 名称改一下,就叫 PrettyCmd 吧,再将它的另外几个属性改一下: ①ScaleMode=3,因为我们会在代码中使用 API 函数来改变它的形状,而 API 函数是以“象素”为单 位的; ②BackColor=绿色,你可以改为其它任何颜色,这只是为了以后做试验时能与窗体的背景区别开来; ③AutoRedraw=True ④Width=1920 ⑤Height=600   其它属性暂时不加理会。   现在可以在这个用户控件上面随便放些其它东西,例如图片框或者标签什么的,就像一个窗体一样 ,但是注意这个“窗体”实际上它将成为中间用户在程序设计时控件的外观形状,我们现在是在做按纽 控件试验,就不必添加别的控件了。   在 UserControl 页面的代码编辑器中你也可以发现,设计一个用户控件跟设计窗体是很相似的,只 是对象变成用户控件,Form 对象现在变成 UserControl 对象,触发的事件不一样而已。 一、自制多风格按纽的形状外观   自制按纽一个很重要的原因就是我们想获得各种形状,所以首先让我们来设计它的形状。   中间用户在进行程序设计时,常要在控件的某些属性的下拉列表中进行选择,我们要自制的按纽共 有 18 种形状(实际是 21 种形状,因为其中的“圆角矩形”可以变化出直角矩形、圆角矩形、椭圆形 、圆形等四种形状,如何变化以后会讲到),所以也必须能够供中间用户选择,那么,在控件设计阶段 时,就要在 UserControls 页面的代码窗口的 Option Explicit 节中定义一个枚举结构。请输入以下代 码: Public Enum mState? 形状外观的枚举结构 ? 圆角矩形 ? 左斜下角 ? 左斜上角 ? 右斜下角 ? 右斜上角 ? 上斜左角 ? 上斜右角 ? 下斜左角 ? 下斜右角 ? 两边平行左斜 ? 两边平行右斜 ? 上下平行左斜 ? 上下平行右斜 ? 菱形 ? 上三角形 ? 下三角形 ? 左三角形 ? 右三角形 End Enum   这个枚举结构的定义方法是不是有点象程序设计时的用户自定义数据类型?mState 是枚举类型名称 。   注意: ①如果你设计的控件的其它属性,其属性值不需要用下拉框加以选择的话,就不要在此进行类似定义。 ②属性值我这写的都是汉字,以后中间用户打开这个属性的下拉框时看到也是汉字,如果你的英文很过 关,改为英文当然也可以。 ③这个属性是公用的,要用 Public 来定义。 ④凡是在用户控件页面的 Option Explicit 节中用 Public 定义的变量,都将作为属性名称显示在窗体 页面有关控件的属性窗口,但如果没有在控件页面的有关过程(这些有关过程以后会讲到)中保存它的 话,那么这个属性就只能在应用程序代码中设置或读取。   为了表示中间用户所选择的属性值,我们还可以另外声明一个中间变量 vState。还有,为了打造出 这些形状,必须借助于 API 函数,这些 API 函数也必须事先声明。   下面在 Option Explicit 节中继续输入: 创建多边形 Private Declare Function CreatePolygonRgn Lib gdi32 (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long 创建圆角矩

文档评论(0)

1亿VIP精品文档

相关文档