如何用vb实现如此的右键扩展菜单效果

如图所示像有些更改文件夹图标的程序,它会增强系统右键扩展,比如在右键菜单上增加一项:彩色文件夹,该项进入下一级菜单,列出一些图标,从而可以快捷更换。请问谁知道能否用vb实... 如图所示
像有些更改文件夹图标的程序,它会增强系统右键扩展,比如在右键菜单上增加一项:彩色文件夹,该项进入下一级菜单,列出一些图标,从而可以快捷更换。请问谁知道能否用vb实现?
(我看了一些此类程序,貌似都有一个专门用于右键扩展的dll,能否引用现它呢)
(不要只是为了刷分,随便复制粘贴)
----------------------------------
谢谢一楼的xuan2xueer,因为提问时出了些差错,以致没有描述清楚。我想要重点不在如何在菜单里显示图标,而是如何能在系统右键(在文件夹上点右键)菜单里还有下一级菜单。我再等等看有没有更好的回答吧,
展开
 我来答
雪v宝
2009-11-29 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:115万
展开全部
需要一个Textbox和一个ImageList并在其中添加需要的图片,本例中添加了三张

然后建立一个菜单包含三个子菜单项
Color
------红
------黄
------蓝

Option Explicit

Const MF_BYPOSITION = &H400&
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

Private Sub Form_Load()
Dim hMenu As Long, hSubMenu As Long
'获得窗体菜单的句柄
hMenu = GetMenu(Me.hwnd)
'如果窗体上没有菜单,则hMenu值为0,提示用户
If hMenu = 0 Then
MsgBox "这个窗口没有菜单"
Exit Sub
End If
'获得菜单中第一个菜单项的句柄
hSubMenu = GetSubMenu(hMenu, 0)
'如果要获得第二项菜单的句柄,则使用hSubMenu = GetSubMenu(hMenu, 1),依此类推

'将ImageList1中第一张图片设置为第一个菜单中第一个子菜单项的图片
'可以设置菜单项被选中时的图片
SetMenuItemBitmaps hSubMenu, 0, MF_BYPOSITION, Me.ImageList1.ListImages(1).Picture, Me.ImageList1.ListImages(1).Picture
SetMenuItemBitmaps hSubMenu, 1, MF_BYPOSITION, Me.ImageList1.ListImages(2).Picture, Me.ImageList1.ListImages(2).Picture
SetMenuItemBitmaps hSubMenu, 2, MF_BYPOSITION, Me.ImageList1.ListImages(3).Picture, Me.ImageList1.ListImages(3).Picture
'...
End Sub

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 2 Then
Text1.Enabled = False
Text1.Enabled = True
PopupMenu Color
End If

End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式