VB中用第三方控件打造QQ菜单

本文介绍如何使用CtListBar控件制作类似QQ的菜单界面。通过实例展示控件的基本使用方法,包括添加分组、项目及实现动态操作。
  QQ的界面大家都不陌生吧?CtListBar就是一个十分优秀的第三方控件,利用它我们可以很轻松的做出一个象QQ一样的界面。这节中,我们将通过对CtListBar控件基本使用方法的学习,参照一个实例,打造出一个很酷的QQ菜单。

  CtListBar控件包含了许多很有用的方法和属性。开始实例学习前,我们有必要先对其主要的几个方法和属性了解一番。表一和表二分别列出了几个主要的方法和属性,以及它们的类型、说明。初步了解之后,现在我们就开始实例讲解。

  (表一)

方法返回类型说明
AddListinteger添加一个新的分组
DeleteListboolean从控件中删除一个已有分组
AddListIteminteger在一个分组中新添加一个项目
DeleteItem boolean 在一个分组中删除一个项目
InsertListItemshort 在某一分组中的某一位置插入一个新的项目
ClearLists void 清除控件中的所有分组和项目

  (表二)

属性数据类型说明
BackImagePicture设置控件背景图片。利用这个属性,可以实现“皮肤”的功能。
BarHeightinteger设置分组按钮的高度。
BorderType integer 设置控件的边框样式
BorderColor long 设置控件的边框颜色,仅当BorderType设置为“0 - Regular”时有效。
ButtonBackColorlong 设置分组按钮和上下滚动按钮的颜色。
ButtonForeColorlong 设置分组按钮和上下滚动按钮的字体颜色。
ButtonSizeinteger 设置上下滚动按钮大小。
GradientFill boolean 设置控件背景是否显示渐变色。
GradColorFromlong 设置渐变色的起始颜色。
GradColorTolong 设置渐变色的结束颜色。
IconSize integer 设置图标显示模式是大图标或小图标。
Image1-6Picture 设置预先在控件中加载的6幅图片。
ListBarStyleinteger 设置控件纵向或是横向显示。
ListBackColor long 设置控件的背景颜色。
ListForeColor long 设置分组中项目文字的颜色。
ListScrollSpeedinteger 设置项目滚动的速度。
ItemScrollSpeedinteger设置分组滑动的速度。

  第一步:首先启动Visual Basic 6.0,新建一个窗口,修改窗口的Caption属性为你喜欢的名字,如“我的QQ菜单”。
  
  第二步:加载CtListBar控件,设置其属性。

  ①在控件工具栏中单击右键,选择“部件”,在弹出的窗口中点击“浏览”,找到CtListBar控件,载入它;把它添加到Form1窗体中,用 鼠标拖动调整其大小。

  ②修改Caption属性为“我的好友”。Caption属性值将是菜单第一个分组的名称。

  ③修改ListBackColor属性。实例中我们借用了QQ的头像图片,设置属性值为&H00808000&,是背景颜色与图片背景吻合。

  ④在Images属性中载入图片。CtListBar控件本身可以载入6幅图片,这里我们从QQ的头像中载入6幅图片(如图1)。

               

  ⑤其余属性可以参照表2,依你自己的喜好设置。这里我们采用默认值。

  小技巧:虽然CtListBar控件只能载入6幅图片,但是我们可以用其他方法使CtListBar控件可以使用更多的图片,如使用PictureBox控件、ImageList控件等。

  第三步:添加其他控件,完成界面的设置。

  在窗体中添加5个CommandButton,将名称分别设置为cmd_AddList、cmd_DelList、cmd_AddItem、cmd_DelItem、cmd_Insert;将Caption属性依次设置为“添加分组”、“删除分组”、“添加项目”、“删除项目”、“插入项目”。 

  到这里,界面的设置就搞掂了,完成后如图2。
 

  第四步:接下来,我们就开始代码的编写,实现具体的功能。

  ①声明4个全局变量。

  Dim strListName, strItemName As String
  Dim intListNum, intItemNum As Integer 
 
  ②CtListBar控件不能预先设置好分组和项目,只能动态的添加,所以我们在Form_Load()事件中加入代码,添加结果分组和项目。

ctListBar1.AddList "陌生人"
ctListBar1.AddList "黑名单"
ctListBar1.AddListItem 1, "My heart", ctListBar1.Image1
ctListBar1.AddListItem 1, "第七乐章", ctListBar1.Image2
ctListBar1.AddListItem 1, "小A", ctListBar1.Image3
ctListBar1.AddListItem 1, "小B", ctListBar1.Image4
ctListBar1.AddListItem 1, "张三", ctListBar1.Image5
ctListBar1.AddListItem 1, "李四", ctListBar1.Image6

  以上代码中,我们新添加了“陌生人”和“黑名单”两个分组,又在原先设置过的“我的好友”分组中添加了6个项目。

  提示:ctListBar1.AddListItem方法使用了3个参数,分别为nIndex(分组的Index值)、strText(项目的名称)、Picture(项目的图片)。
 
  ③在按钮控件cmd_AddList的Click事件中输入代码:

  strListName = ""
  strListName = InputBox("请输入要添加的分组名称", "添加分组")
  If strListName <> "" Then ctListBar1.AddList strListName

  在按钮控件cmd_DelList的Click事件中输入代码:

  intListNum = 0
  intListNum = Val(InputBox("请输入要删除的分组标识号", "删除分组"))
  If intListNum <> 0 Then ctListBar1.DeleteList intListNum
  
  在按钮控件cmd_AddItem的Click事件中输入代码:

  strItemName = ""
  intListNum = 0
  intListNum = Val(InputBox("请输入要添加的项目所在分组的标识号", "添加项目"))
  If intListNum <> 0 Then strItemName = InputBox("请输入要添加的项目的名称", "添加项目")
  If strItemName <> "" Then ctListBar1.AddListItem intListNum, strItemName, ctListBar1.Image1

  在按钮控件cmd_DelItem的Click事件中输入代码:

  intListNum = 0
  intItemNum = 0
  intListNum = Val(InputBox("请输入要删除的项目所在分组的标识号", "删除项目"))
  If intListNum <> 0 Then intItemNum = Val(InputBox("请输入要删除的项目的标识号", "删除项目"))
  If intItemNum <> 0 Then ctListBar1.DeleteItem intListNum, intItemNum

  在按钮控件cmd_Insert的Click事件中输入代码:

  intListNum = 0
  intItemNum = 0
  strItemName = ""
  intListNum = Val(InputBox("请输入要插入的项目所在分组的标识号", "插入项目"))
  If intListNum <> 0 Then intItemNum = Val(InputBox("请输入要插入的项目所在位置的标识号", "插入项目"))
  If intItemNum <> 0 Then strItemName = InputBox("请输入要插入的项目的名称", "插入项目")
  If strItemName <> "" Then ctListBar1.InsertListItem intListNum, intItemNum, strItemName, tListBar1.Image1

  提示:用AddListItem添加的项目只能添加在该分组末尾,而InsertListItem方法可以在一个分组中的指定位置插入一个新的项目。

  到这里,这个简单的实例程序就完成了,按下F5,看看效果(如图3),是不是很酷?和QQ象极了!CtListBar控件用处很多,它完全可以用来替代Visual Basic中菜单编辑器编辑出的古板菜单,很多著名 软件都使用了类似的菜单效果。在你的程序中也用上这个控件,一定可以为你的程序增辉不少。

 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值