效果图:
![记录一下:在菜单上添加自绘图形的例子(VB6代码) - miaozk2006 - miaozk2006 记录一下:在菜单上添加自绘图形的例子(VB6代码) - miaozk2006 - miaozk2006](http://img0.ph.126.net/EgZjuoHtkWaFfBK7IgmZ0g==/1162210178855407220.jpg)
Option Explicit
'在菜单上添加自绘图形的例子
'窗体上添加一个Picture1,一个Command1,一个至少带一个下级菜单的顶级菜单.
'BY 嗷嗷叫的老马
'http://www.m5home.com/
Private Declare Function GetSubMenu Lib "user32.dll" ( _
ByVal hMenu As Long, _
ByVal nPos As Long) As Long
Private Declare Function GetMenu Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Private Declare Function GetMenuItemID Lib "user32.dll" ( _
ByVal hMenu As Long, _
ByVal nPos As Long) As Long
Private Declare Function SetMenuItemBitmaps Lib "user32.dll" ( _
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 DrawIcon Lib "user32.dll" ( _
ByVal hdc As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal hIcon As Long) As Long
Private Const MF_BITMAP As Long = &H4&
Private Sub Command1_Click()
Dim hMenu As Long, hSubMenu As Long, hID As Long
'效果一:绘上当前窗体图标
' DrawIcon Picture1.hdc, -5, -5, Me.Icon.Handle
'效果二:画个小图....
Picture1.Line (1, 1)-(11, 11), vbBlue, B
Picture1.Line (1, 1)-(11, 11), vbRed
Picture1.Line (1, 11)-(11, 1), vbRed
Set Picture1.Picture = Picture1.Image '这一句是关键
hMenu = GetMenu(Me.hwnd)
hSubMenu = GetSubMenu(hMenu, 0)
hID = GetMenuItemID(hSubMenu, 0)
SetMenuItemBitmaps hMenu, hID, MF_BITMAP, Picture1.Picture, Picture1.Picture
End Sub
Private Sub Form_Load()
With Picture1
.Move .Left, .Top, 15 * 15, 15 * 15
.Appearance = 0
.AutoRedraw = True
.ScaleMode = vbPixels
End With
End Sub