记录一下:在菜单上添加自绘图形的例子(VB6代码)

不复杂,记录在这里以备以后要用时懒得重写....

效果图:



[codes=vb]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[/codes]


评论: 0 | 引用: 0 | 查看次数: 1031