国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > 綜合 > 正文

VB打造超酷個(gè)性化菜單(一)

2024-07-21 02:20:58
字體:
供稿:網(wǎng)友

vb打造超酷個(gè)性化菜單(一)



眾所周知,ms office 2003推出已經(jīng)有一段時(shí)間了,但我們依然不會(huì)忘記office xp剛剛推出時(shí)其令人耳目一新的菜單給我們留下的深刻印象。突起的懸浮式圖標(biāo),不同尋常的菜單項(xiàng)填充方式,不僅讓辦公一族們贊不絕口,更讓廣大的程序員和編程愛好者對(duì)這種風(fēng)格的菜單的制作產(chǎn)生了濃厚的興趣。所以,在這篇文章里,我們就來好好地研究研究用vb怎么制作這種風(fēng)格的菜單,在文章的最后,我將給出源代碼的下載地址。事實(shí)上,在了解其原理以后,不論是用vb、vc還是delphi,都能夠制作出xp風(fēng)格的菜單。不僅如此,我們還可以制作出更加充滿個(gè)性的另類風(fēng)格的菜單,比如3d立體風(fēng)格、漸變風(fēng)格、多彩風(fēng)格等等。只有想不到的,沒有做不到的。follow me!

現(xiàn)在,我想有必要說一說我們現(xiàn)在要做的事情。事實(shí)上,我們只要做一個(gè)菜單類就行了。但誰(shuí)都會(huì)明白,只做一個(gè)菜單類是不夠的,我們需要一個(gè)程序,或者更詳細(xì)的說,是一個(gè)窗體,來測(cè)試我們的菜單類。在我個(gè)人的開發(fā)過程中,我是先寫的菜單類,后寫的測(cè)試窗體,但為了讓大家先領(lǐng)略一下寫好的菜單類在應(yīng)用時(shí)是多么的方便,所以讓我們先來看看測(cè)試窗體:

(1)打開vb,新建“標(biāo)準(zhǔn)exe”工程。

(2)­­下面是窗體的控件:



組件名稱
屬性


form
name

caption
frmmain

菜單例子

frame
name

caption
frastyle

菜單風(fēng)格

label
name

caption
lblhelp

在窗體空白處單擊鼠標(biāo)右鍵

optionbutton
name

caption

index
opnstyle

window 標(biāo)準(zhǔn)

0

optionbutton
name

caption

index
opnstyle

xp 風(fēng)格

1

optionbutton
name

caption

index
opnstyle

3d 立體風(fēng)格

2

optionbutton
name

caption

index
opnstyle

漸變風(fēng)格

3

optionbutton
name

caption

index
opnstyle

多彩風(fēng)格

4




其實(shí)就是在窗體上添加了一個(gè)frame,然后在frame里添加optionbutton控件數(shù)組,用來設(shè)置菜單風(fēng)格,還有一個(gè)label,上面只顯示一行提示文字,非常簡(jiǎn)單。

(3)窗體代碼:



option explicit



private declare function getcursorpos lib "user32.dll" (lppoint as pointapi) as long



private type pointapi

x as long

y as long

end type



dim menu as cmenu



private sub form_load()

' 初始化菜單并添加菜單項(xiàng)

set menu = new cmenu

menu.createmenu

menu.additem "open", loadpicture("images/open.ico"), "打開", mit_string

menu.additem "save", loadpicture("images/save.ico"), "保存", mit_string

menu.additem "print", loadpicture("images/print.ico"), "打印", mit_string

menu.additem "find", loadpicture("images/find.ico"), "查找", mit_string

menu.additem "sep1", loadpicture(), "", mit_separator

menu.additem "undo", loadpicture("images/undo.ico"), "撤消", mit_string

menu.additem "redo", loadpicture("images/redo.ico"), "重復(fù)", mit_string

menu.additem "sep2", loadpicture(), "", mit_separator

menu.additem "cut", loadpicture("images/cut.ico"), "剪切", mit_string

menu.additem "copy", loadpicture("images/copy.ico"), "復(fù)制", mit_string

menu.additem "paste", loadpicture("images/paste.ico"), "粘貼", mit_string

menu.additem "sep3", loadpicture(), "", mit_separator

menu.additem "check", loadpicture("images/check.ico"), "一個(gè) checkbox", mit_checkbox

menu.additem "exit", loadpicture("images/exit.ico"), "退出", mit_string

end sub



private sub form_mousedown(button as integer, shift as integer, x as single, y as single)

' 單擊鼠標(biāo)右建彈出菜單

if button = vbrightbutton then

dim pos as pointapi

getcursorpos pos

menu.popupmenu pos.x, pos.y, popup_leftalign or popup_topalign

end if

end sub



private sub form_unload(cancel as integer)

' 釋放資源, 卸載窗體

set menu = nothing

dim frm as form

for each frm in forms

unload frm

next

end sub



private sub opnstyle_click(index as integer)

' 設(shè)置菜單風(fēng)格

select case index

case 0 ' windows 標(biāo)準(zhǔn)

menu.style = style_windows

case 1 ' xp 風(fēng)格

menu.style = style_xp

case 2 ' 3d 立體風(fēng)格

menu.style = style_3d

case 3 ' 漸變風(fēng)格

menu.style = style_shade

case 4 ' 多彩風(fēng)格

menu.style = style_colorful

end select

end sub



代碼中創(chuàng)建了一個(gè)cmenu類的對(duì)象,我們的編程重點(diǎn)將會(huì)放在cmenu類上,上面的代碼只是簡(jiǎn)單地調(diào)用cmenu。在后面的文章中,我們會(huì)看到其實(shí)cmenu有多達(dá)30個(gè)方法和屬性供我們調(diào)用,它的style屬性只提供了5種內(nèi)置風(fēng)格,在實(shí)際應(yīng)用中,我們可以利用cmenu類提供的方法和屬性制作出各種各樣風(fēng)格的菜單,為自己的程序錦上添花。

(4)運(yùn)行結(jié)果:






























這篇文章只是拋磚引玉,讓大家先睹為快,提前體驗(yàn)一下這個(gè)菜單類的魅力。在下一篇中,我們將繼續(xù)討論個(gè)性化菜單的制作,不一樣的是,我們的重點(diǎn)將是那個(gè)cmenu類。 :)



(待續(xù))
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 湟源县| 山东省| 景东| 桐城市| 肥东县| 和平区| 庄浪县| 牡丹江市| 中西区| 安西县| 丰都县| 齐河县| 鄂托克前旗| 故城县| 古交市| 上犹县| 德兴市| 托克逊县| 安义县| 衢州市| 巴里| 勐海县| 满城县| 柳林县| 行唐县| 万州区| 江城| 石门县| 错那县| 乌鲁木齐市| 南华县| 凤翔县| 泗阳县| 云霄县| 莲花县| 宁都县| 高雄县| 宁陵县| 如东县| 富民县| 海淀区|