براي اضافه آيکون به منوهاي موجود در يک برنامه visual
basic بايستي از توابع زير که موجود در کتابخانه User32 هستند استفاده کنيد :
۱
- GetMenu
۲ - GetSubMenu
۳ - GetMenuItemID
۴ - SetMenuIcon
ابتدا يک
ماژول ايجاد کنيد و توابع فوق را در آن declare کنيد :
Public Declare Function GetMenu Lib
"user32" (ByVal hwnd As Long) As Long
Public Declare Function GetSubMenu
Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Public
Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As
Long) As Long
Public 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
براي قرار دادن يک آيکون در کنار
يکي از آيتمهاي منو نياز به handle فرم ، شماره منو ، شماره آيتم مورد نظر و نيز يک
picture داريم :
Public Function SetMenuIcon(FrmHwnd
As Long, MainMenuNumber As Long, MenuItemNumber As Long, Flags As Long,
BitmapUncheckedHandle As Long, BitmapCheckedHandle As Long)x
Dim lngMenu As
Long
Dim lngSubMenu As Long
Dim lngMenuItemID As Long
lngMenu =
GetMenu(FrmHwnd)x
lngSubMenu = GetSubMenu(lngMenu,
MainMenuNumber)x
lngMenuItemID = GetMenuItemID(lngSubMenu,
MenuItemNumber)x
,SetMenuIcon = SetMenuItemBitmaps(lngMenu, lngMenuItemID,
Flags
BitmapUncheckedHandle, BitmapCheckedHandle)x
End
Function
image هاي مورد نظر خود را با
ابعادي حدود 16*16 پيکسل و بصورت PictureBox در فرم خود قرار دهيد و خاصيت Visible
مربوط به PictureBox ها را False کنيد .
سپس منوهاي خود را توسط Menu Editor
طراحي کنيد .
File و
Edit منوهاي اصلي هستند . پارامتر MainMenuNumber در تابع فوق شماره منوي اصلي است
که براي File برابر صفر و براي Edit برابر يک مي باشد . پارامتر MenuItemNumber
شماره هر آيتم در يک منو است که اين پارامتر نيز از صفر شروع مي شود .
اکنون
براي اضافه کردن سه آيکون به سه آيتم منوي File کدهاي زير را در Form_Load بنويسيد
:
Private Sub
Form_Load()x
SetMenuIcon Me.hwnd, 0, 0, 0, pic1.Picture,
pic1.Picture
SetMenuIcon Me.hwnd, 0, 1, 0, pic2.Picture,
pic2.Picture
SetMenuIcon Me.hwnd, 0, 2, 0, pic3.Picture,
pic3.Picture