国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
在菜單中加入圖標(biāo)

  VB菜單編輯器所提供的默認(rèn)菜單是不能在菜單項(xiàng)中加入圖標(biāo)的,而許多流行的軟件大都采用了漂亮的帶有小圖標(biāo)的菜單,如果想利用VB實(shí)現(xiàn)這種效果就必須要調(diào)用API函數(shù)來實(shí)現(xiàn)了。例中我們使用了三個(gè)與菜單操作有關(guān)的函數(shù):GetMenu、SetMenuItemBitmaps、GetSubMenu。

  為了學(xué)習(xí)方便,提供的源碼已經(jīng)作了詳細(xì)的中文注釋,看看源碼框中的代碼:

  我們先來聲明API函數(shù),本例中用到的三個(gè)函數(shù)聲明如下:
   Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long

   Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long

   Private Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long

  GetMenu函數(shù)的作用得到一個(gè)窗口中的菜單的句柄(這個(gè)菜單句柄應(yīng)理解為處于某個(gè)窗體上的所有菜單的入口),其中各個(gè)參數(shù)的意義如下表所示:

參數(shù)
意義
hwnd Long,窗口句柄。對于vb,這應(yīng)該是一個(gè)窗體句柄
返回值 Long,依附于指定窗口的一個(gè)菜單的句柄(如果有菜單);否則返回零

  GetSubMenu函數(shù)用于取得一個(gè)彈出式菜單(彈出式菜單是指處于任何一級的菜單,注意不是菜單項(xiàng))的句柄,它位于菜單中指定的位置,它的各個(gè)參數(shù)的意義如下:

參數(shù)
意義
hMenu Long,菜單的句柄
nPos Long,次級菜單在上級菜單中的位置。第一個(gè)位置的編號為0
返回值 Long,位于指定位置的彈出式菜單的句柄(如果有的話);否則返回零

  SetMenuItemBitmaps函數(shù)用于設(shè)置一幅特定位圖,令其在指定的菜單條目中使用,代替標(biāo)準(zhǔn)的復(fù)選符號(√),它的各個(gè)參數(shù)的意義如下:

參數(shù)
意義
hMenu Long,菜單的句柄
nPosition Long,欲設(shè)置位圖的一個(gè)菜單條目的標(biāo)識符。如在wFlags參數(shù)中指定了MF_BYCOMMAND,這個(gè)參數(shù)就代表欲改變的菜單條目的命令I(lǐng)D。如設(shè)置的是MF_BYPOSITION,這個(gè)參數(shù)就代表菜單條目在菜單中的位置(第一個(gè)條目的位置為零)
wFlags Long,常數(shù)MF_BYCOMMAND或MF_BYPOSITION,取決于nPosition參數(shù)
hBitmapUnchecked Long,撤消復(fù)選時(shí)為菜單條目顯示的一幅位圖的句柄。如果為零,表示不在未復(fù)選狀態(tài)下顯示任何標(biāo)志
hBitmapChecked Long,復(fù)選時(shí)為菜單條目顯示的一幅位圖的句柄??稍O(shè)為零,表示復(fù)選時(shí)不顯示任何標(biāo)志。如兩個(gè)位圖句柄的值都是零,則為這個(gè)條目恢復(fù)使用默認(rèn)復(fù)選位圖
返回值 Long,非零表示成功,零表示失敗。

  下面我們看看怎樣為菜單的指定項(xiàng)目加上圖標(biāo),步驟一:取得菜單的句柄并賦值給mHandle,接著取得mHandle句柄所指菜單的第一個(gè)彈出式菜單的句柄并賦值給sHandle:
   mHandle = GetMenu(form.hwnd)
   sHandle = GetSubMenu(mHandle, 0)

  然后就為菜單項(xiàng)加入圖標(biāo),這里我們把wFlags參數(shù)設(shè)為了MF_BYPOSITION,也就是說使用菜單項(xiàng)的位置(從序號0開始)來標(biāo)示菜單項(xiàng):
   lRet = SetMenuItemBitmaps(sHandle, 0, MF_BYPOSITION, imOpen.Picture, imOpen.Picture)
   lRet = SetMenuItemBitmaps(sHandle, 1, MF_BYPOSITION, imSave.Picture, imSave.Picture)

  以上是為菜單項(xiàng)添加圖標(biāo)的基本方法,例中還演示了怎樣為次級菜單中的菜單項(xiàng)添加圖標(biāo),以及菜單項(xiàng)處于復(fù)選/非復(fù)選狀態(tài)時(shí),對應(yīng)圖標(biāo)發(fā)生變化的方法,具體的實(shí)現(xiàn)方法可以參照程序中的注釋。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VB示例:VB中使窗體右上角的X按鈕失效
VB.NET自動(dòng)操作其他程序(2)
如何取消窗體的關(guān)閉按鈕
VB如何實(shí)現(xiàn)禁用程序關(guān)閉?
EnableMenuItem
如何在菜單中顯示圖標(biāo)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服