在Form1上添加第二个菜单项,将它的标题设置为“[&A]脸谱”,名称设置为mnuFace。在其下添加4个子菜单项,分别将改4个子菜单项的名称设置为“[N]正常”,“[&S]微笑”,“ [&L]大笑”,以及“[&O]悲伤”。将它们的名称设置为“mnuFaceSel”,并相应将这4个子菜单项的索引设置为0,1,2,3。
将如下的代码添加到Form1的Form_Load事件中:
Private Sub Form_Load()
Dim nLoopCtr As Integer
Dim lResult As Long
Dim hTempDC As Long
Dim nWidth As Integer
Dim nHeight As Integer
Dim lTempID As Long
Dim hMenuID As Long
Dim lItemCount As Long
Dim hBitmap As Long
nWidth = Picture1(nLoopCtr).Width / Screen.TwipsPerPixelX
nHeight = Picture1(nLoopCtr).Height / Screen.TwipsPerPixelY
hMenuID = GetSubMenu(GetMenu((Me.hwnd)), 1)
hTempDC = CreateCompatibleDC(Picture1(nLoopCtr).hdc)
For nLoopCtr = 0 To 3
hBitmap = CreateCompatibleBitmap(Picture1(nLoopCtr).hdc, nWidth,
nHeight)
lTempID = SelectObject(hTempDC, hBitmap)
lResult = BitBlt(hTempDC, 0, 0, nWidth, nHeight, (Picture1(nLoopCtr).
hdc), 0, 0, SRCCOPY)
lTempID = SelectObject(hTempDC, lTempID)
mnuFaceSel(nLoopCtr).Caption = ""
lResult = ModifyMenu(hMenuID, nLoopCtr, MF_BYPOSITION Or MF_BITMAP,
GetMenuItemID(hMenuID, nLoopCtr), hBitmap)
Next nLoopCtr
lResult = DeleteDC(hTempDC)
End Sub
将如下的代码添加到“退出”子菜单的单击事件中:
Private Sub mnuExit_Click(Index As Integer)
Select Case Index
Case 0
Unload Me
End Select
End Sub
运行该样例程序,单击“脸谱”菜单,则会看到由4个脸谱图标所形成的位图子菜单项,如图1所示。单击“文件”/“退出”菜单可退出应用程序。