آیا تا بحال برایتان پیش آمده است که بخواهید برای منوهای خود آیتمهای تصویری ایجاد کنید. در این مقاله میخوام بگم که چطور میشه در منوها تصویر قرار داد. شما میتوانید کدهای زیر را در یک ماژوال کپی کرده و با استفاده از تابع زیر به منوهای خود تصویر اضافه کنید. در زیر توضیحی در مورد چگونگی کار با این تابع را خواهید آموخت.
AddMenuBitmap(SubMenuIndex As Byte, MenuIndex As Byte, UnCheckedPicture As IPictureDisp, CheckedPicture As IPictureDisp)
در آرگومان اول باید Index منویی را مشخص کنید که با کلیک بر روی آن منویی باز میشود گزینه مورد نظر شما در آن است. این شماره گذاری از صفر شروع میشود. برای مثال در همین Internet Explorer منوی فایل دارای Index صفر و منوی ادیت دارای Index یک است.
در آرگومان دوم باید Index منویی را مشخص کنید که گزینه مورد نظر شما در آن است. این شماره گذاری نیز از صفر شروع میشود. برای مثال در همین Internet Explorer منوی فرعی ...Open دارای Index یک است چون از بالا دومین گزینه است.
در آرگومان سوم باید مسیر تصویر خود را مشخص کنید. بهتر است که این تصویر را در یک Image List قرار دهید. نکته بعدی اینکه باید سایز تصویر شما 14 پیکسل در 14 پیکسل باشد. نکته آخر اینکه شما میتوانید از تصاویری با فرمت bmp.* و jpg.* و gif.* استفاده کنید در ضمن شما میتوانید از حالت Transparency نیز استفاده کنید. این تصویر در حالت تیک نخورده منو اعمال میشود.
در آرگومان چهارم باید مسیر تصویری را مشخص کنید که منو در حالت تیک خورده است.
این هم کدهای ماژول:
"Import Necessary API Functions To Use itmap Pictures In The Menus
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 GetMenuItemID 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
"Import a Bitmap Constant To Use Bitmap Pictures In The Menus
Private Const MFT_BITMAP = &H4&
Public Function AddMenuBitmap(SubMenuIndex As Byte, MenuIndex As Byte, UnCheckedPicture As IPictureDisp, CheckedPicture As IPictureDisp)
"Set Some Variable To Add Bitmap Pictures
Dim MenuID As Long
Dim SubMenu As Long
Dim SubMenuID As Long
MenuID = GetMenu(SplashFrm.hwnd)
SubMenu = GetSubMenu(MenuID, SubMenuIndex)
SubMenuID = GetMenuItemID(SubMenu, MenuIndex)
SetMenuItemBitmaps MenuID, SubMenuID, MFT_BITMAP, UnCheckedPicture, CheckedPicture
End Function