控件和源码下载

   QQ的界面大家都不陌生吧?CtListBar就是一个十分优秀的第三方控件,利用它我们可以很轻松的做出一个象QQ一样的界面。这节中,我们将通过对CtListBar控件基本使用方法的学习,参照一个实例,打造出一个很酷的QQ菜单。

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

   (表一)

方法 返回类型 说明
AddList integer 添加一个新的分组
DeleteList boolean 从控件中删除一个已有分组
AddListItem integer 在一个分组中新添加一个项目
DeleteItem boolean 在一个分组中删除一个项目
InsertListItem short 在某一分组中的某一位置插入一个新的项目
ClearLists void 清除控件中的所有分组和项目

   (表二)

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

   第一步:首先启动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中菜单编辑器编辑出的古板菜单,很多著名软件都使用了类似的菜单效果。在你的程序中也用上这个控件,一定可以为你的程序增辉不少。