- 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
创建圆角矩
您可能关注的文档
- 现浇混凝土模板装工程质量标准和检验方法2012.doc
- 玻璃工业厂房施组织设计.doc
- 玻璃钢水箱结构计规则.doc
- 玻璃钢消防水箱装施工方案(图解).doc
- 珍藏版大学四级汇表.doc
- 玻璃钢水箱3 构设计.doc
- 珠海市柠溪西路翠微段)工程安全技术措施、文明施工措施.doc
- 球墨铸铁管及hpe管施工组织设计.doc
- 瑞丰汽车衡称重件多功能版手册.doc
- 瓷砖品牌以及价大全.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 交流转辙机道岔动作电流故障曲线分析信号集中监测课件.pptx VIP
- 2025届东北三省三校高三下学期第一次联合模拟考试政治试题(原卷版+解析版).docx VIP
- 养老服务质量检测90项.pdf VIP
- 光谱分析图谱与标志.docx
- 2025新课标中考英语词汇.pdf VIP
- T_CNPHARS 0001-2025 群体药动学药效学分析标准操作规范.pdf VIP
- (2026年)血浆置换及血浆分离吸附护理要点PPT课件.pptx VIP
- 农村狗狗交配的全过程,让你看了有点不可置信.pdf VIP
- 医院培训课件:《死亡医学证明(推断)书》规范填写及死因链基础知识.pptx VIP
- 健康体检表样表最新文档.docx VIP
原创力文档

文档评论(0)