Option Explicit '在模块级别中使用,强制显式声明模块中的所有变量。
'函数可以查 意思很明确(根据英文意思)
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
Dim pmenu, smenu, a As Long
Const MF_BYPOSITION = &H400& '这个参数很重要,是通过位置来的
Private Sub Form_Load()
pmenu = GetMenu(hwnd) 'hwnd为固定的,现在还不需要知道它是什么
smenu = GetSubMenu(pmenu, 0) '子菜单是从零开始的
a = SetMenuItemBitmaps(smenu, 0, MF_BYPOSITION, Image1.Picture, Image1.Picture) '1
a = SetMenuItemBitmaps(smenu, 1, MF_BYPOSITION, Image2.Picture, Image1.Picture) '2
a = SetMenuItemBitmaps(smenu, 3, MF_BYPOSITION, Image3.Picture, Image1.Picture) '4
'a = SetMenuItemBitmaps(smenu, 4, MF_BYPOSITION, Image2.Picture, Image1.Picture)
pmenu = GetMenu(hwnd) '同样的道理
smenu = GetSubMenu(pmenu, 1)
smenu = GetSubMenu(smenu, 0)
a = SetMenuItemBitmaps(smenu, 0, MF_BYPOSITION, Image5.Picture, Image5.Picture)
End Sub
Private Sub tuichu_Click()
Unload Me
End Sub
1.查GetMenu,GetSubMenu,SetMenu...,将函数声明Copy到你的程序中[常量MF_BYPOSITION的值很重要]
2.将要用的图片放到Image控件中
3.找菜单(主→第一个子菜单→其他子菜单)[入口要找准],找到后将图片加进来就可以了
本文介绍如何利用Windows API在菜单项中插入图标。通过声明并调用GetMenu, GetSubMenu, SetMenuItemBitmaps函数,结合MF_BYPOSITION常量,可以将Image控件中的图片设置为菜单项的图标。详细步骤包括复制API声明,放置图片,以及定位并修改菜单结构。"
109359405,8828609,解密程序员段子:你能理解几个?,"['程序员文化', '编程笑话', '技术幽默']
1270

被折叠的 条评论
为什么被折叠?



