PDA

View Full Version : قرار دادن آیکون روی منوها



alizanganeh
جمعه 21 بهمن 1390, 14:51 عصر
سلام
میخوام روی زیر منو هام آیکون بزارم باید چیکار کنم
لطفا کامل جواب بدید
ممنون

سید حمید حق پرست
جمعه 21 بهمن 1390, 15:27 عصر
سلام من همین تاپیک رو چند روز پیش زدم . صفحه سه
بیا اینم روش :

کد زیر را در یک ماژول کپی کنین:
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
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 Const MF_BYPOSITION = &H400&

Public Sub AddMenuIcon(fForm As Form, sMenuItemTarget$, oBitmap As Picture)
Dim lMnu&, lSMnu&, i%, sMnuPosLst$()
lMnu& = GetMenu(fForm.hwnd)
lSMnu& = lMnu&
sMnuPosLst$ = Split(sMenuItemTarget$, "\")

For i% = LBound(sMnuPosLst$) To UBound(sMnuPosLst$) - 1
lSMnu& = GetSubMenu(lSMnu&, CLng(Val(sMnuPosLst$(i))))
Next 'i%

SetMenuItemBitmaps lSMnu&, sMnuPosLst$(UBound(sMnuPosLst$)), MF_BYPOSITION, oBitmap, oBitmap
End Sub



برای افزودن تصویر به یک آیتم آدرس را مشابه نمونه زیر وارد کنید
AddMenuIcon Me, "0\1\1", Picture1.Picture


همانطور که مشاهده میکنید آدرس آیتم مورد نظر را بصورت "0\1\1" مینویسیم، اولین عدد یعنی 0 شماره منوی اصلی و مابقی شماره آیتم های submenu است

به عنوان مثال اگر لیست منوی ما بصورت زیر باشد:
File
....New
....Open
....ListOptions
........AddNew
........Refresh




و ما بخواهیم آیکونی را برای آیتم Open اختصاص دهیم، بایستی دستور را بصورت زیر تعریف کنیم:
AddMenuIcon Me, "0\1", Picture1.Picture


که 0 شماره منوی File و 1 موقعیت مکانی آیتم Open است


یا برای اختصاص دادن آیکونی بر روی آیتم Refresh که خود زیر منوی ListOptions است:
AddMenuIcon Me, "0\1\1", Picture1.Picture


برای مابقی منوها و زیرمنوها هم به همین صورت است

موفق باشید

alizanganeh
جمعه 21 بهمن 1390, 15:44 عصر
خیلی ممنون ولی سوال :
اول اینکه این کدهایی که دادی رو کجا بنویسم ؟
و اون picture1 یک picturebox ه؟
ممنون

محسن واژدی
جمعه 21 بهمن 1390, 15:51 عصر
اول اینکه این کدهایی که دادی رو کجا بنویسم ؟

سلام
در هرجایی قرار بدین مشکلی نیست ولی بهتر است در یک ماژول کپی کنید


و اون picture1 یک picturebox ه؟

بله

موفق باشید

alizanganeh
جمعه 21 بهمن 1390, 16:01 عصر
آقا درست شد
اول اینکه منظورم اون یک خط کد بود که خودم هم همون اول توی formload نوشته بودم
و نکته ی مهم اینه که عکسی که انتخاب میکنید نباید با پسوند ico باشه و باید حد اقل bmp باشه
ممنون

محسن واژدی
جمعه 21 بهمن 1390, 16:10 عصر
و نکته ی مهم اینه که عکسی که انتخاب میکنید نباید با پسوند ico باشه و باید حد اقل bmp باشه
بله تصاویر با فرمت bmp,jpg,gif هرکدام باشند درست هستند

موفق باشید