VB中用第三方控件打造QQ菜單
控件和源碼下載
QQ的界面大家都不陌生吧?CtListBar就是一個十分優秀的第三方控件,利用它我們可以很輕松的做出一個象QQ一樣的界面。這節中,我們將通過對CtListBar控件基本使用方法的學習,參照一個實例,打造出一個很酷的QQ菜單。
CtListBar控件包含了許多很有用的方法和屬性。開始實例學習前,我們有必要先對其主要的幾個方法和屬性了解一番。表一和表二分別列出了幾個主要的方法和屬性,以及它們的類型、說明。初步了解之后,現在我們就開始實例講解。
(表一)
(表二)
第一步:首先啟動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個全局變量。
②CtListBar控件不能預先設置好分組和項目,只能動態的添加,所以我們在Form_Load()事件中加入代碼,添加結果分組和項目。
以上代碼中,我們新添加了“陌生人”和“黑名單”兩個分組,又在原先設置過的“我的好友”分組中添加了6個項目。
提示:ctListBar1.AddListItem方法使用了3個參數,分別為nIndex(分組的Index值)、strText(項目的名稱)、Picture(項目的圖片)。
③在按鈕控件cmd_AddList的Click事件中輸入代碼:
在按鈕控件cmd_DelList的Click事件中輸入代碼:
在按鈕控件cmd_AddItem的Click事件中輸入代碼:
在按鈕控件cmd_DelItem的Click事件中輸入代碼:
在按鈕控件cmd_Insert的Click事件中輸入代碼:
提示:用AddListItem添加的項目只能添加在該分組末尾,而InsertListItem方法可以在一個分組中的指定位置插入一個新的項目。
到這里,這個簡單的實例程序就完成了,按下F5,看看效果(如圖3),是不是很酷?和QQ象極了!CtListBar控件用處很多,它完全可以用來替代Visual Basic中菜單編輯器編輯出的古板菜單,很多著名軟件都使用了類似的菜單效果。在你的程序中也用上這個控件,一定可以為你的程序增輝不少。
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中菜單編輯器編輯出的古板菜單,很多著名軟件都使用了類似的菜單效果。在你的程序中也用上這個控件,一定可以為你的程序增輝不少。
![]() |

