top
Loading...
VB中用第三方控件打造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中菜單編輯器編輯出的古板菜單,很多著名軟件都使用了類似的菜單效果。在你的程序中也用上這個控件,一定可以為你的程序增輝不少。


作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗