Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
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
Public Const MF_BITMAP = &H4&
Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Boolean, lpMenuItemInfo As MENUITEMINFO) As Boolean
Public Const MIIM_ID = &H2
Public Const MIIM_TYPE = &H10
Public Const MFT_STRING = &H0&
使用: 在 Form1 中增加一个 PictureBox1, AutoSize 为 True, 放一个小 Bmp (不是 Icon!推荐 13*13)。
Private Sub Command1_Click()'获得菜单句柄
hMenu& = GetMenu(Form1.hwnd)
hSubMenu& = GetSubMenu(hMenu&, 0)
'Get the menuId of the first entry (Bitmap)
hID& = GetMenuItemID(hSubMenu&, 0)’添加位图
SetMenuItemBitmaps hMenu&, hID&, MF_BITMAP, Picture1.Picture, Picture1.Picture
'You can add two bitmaps to a menuentry
'One for the checked and one for the unchecked state.End Sub
Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
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
Public Const MF_BITMAP = &H4&
Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Boolean, lpMenuItemInfo As MENUITEMINFO) As Boolean
Public Const MIIM_ID = &H2
Public Const MIIM_TYPE = &H10
Public Const MFT_STRING = &H0&
使用: 在 Form1 中增加一个 PictureBox1, AutoSize 为 True, 放一个小 Bmp (不是 Icon!推荐 13*13)。
Private Sub Command1_Click()'获得菜单句柄
hMenu& = GetMenu(Form1.hwnd)
hSubMenu& = GetSubMenu(hMenu&, 0)
'Get the menuId of the first entry (Bitmap)
hID& = GetMenuItemID(hSubMenu&, 0)’添加位图
SetMenuItemBitmaps hMenu&, hID&, MF_BITMAP, Picture1.Picture, Picture1.Picture
'You can add two bitmaps to a menuentry
'One for the checked and one for the unchecked state.End Sub
解决方案 »
- 关于16点阵字库纵向读取
- 请问这个数据包怎么发送(郁闷)?
- 用activereport做报表,数据源不用ado控件,想用ado记录集,可是如何用呀?关键是如何让ado记录集的内容显示出来?
- 怎么样为表格增加一列,并且添加数据,我的程序有什么不对,请指点!
- 关于GetPrivateProfileString这个函数
- 请问怎样读取SQL数据库里的图片!!!
- 哪里有金额控件(带千分位分隔符)下载。 简单的类似文本框那样就行了。
- 高手教我:VB的控件是否有最大尺寸限制?如果有,有哪些?
- 怎样打印picturebox中的内容???
- VB中引用ADODC部分功能有问题
- 如何往软盘里面拷贝文件?
- 怎么把两个EXE绑定起来?最好不要用第三方软件
'设置图形菜单
Public Function SetPicMenu(FormHwnd As Long, MenuLine As Long, SubMenuId As Long, Bitmaps As Long, Optional NoCheckBitmaps As Long) As Boolean
Dim Hmenu As Long
Dim HSubMenu As Long
Dim MenuID As Long
Dim x As Long
Hmenu = GetMenu(FormHwnd)
If Hmenu = 0 Then Exit Function
HSubMenu = GetSubMenu(Hmenu, MenuLine)
If HSubMenu = 0 Then Exit Function
MenuID = GetMenuItemID(HSubMenu, SubMenuId - 1)
If MenuID <= 0 Then Exit Function
x = SetMenuItemBitmaps(Hmenu, MenuID, &H4, Bitmaps, NoCheckBitmaps)
If x = 0 Then Exit Function
SetPicMenu = True
End Function