如何编程实现扩展右键菜单之二:使用子菜单

      在上一篇教程中,我们已经实现了在资源管理器的右键菜单中增加自己的菜单项。本文中,笔者将介绍如何将自己的菜单项分组到子菜单中。如果需要添加的菜单项比较多,则使用子菜单将有助于提高右键菜单的友好性。

      本文中的实例是在上一篇教程的基础上进行修改,在上一篇的基础上,增加一个菜单项用于使用记事本打开所选TXT文件,同时将我们在这两篇教程中添加的菜单项放到一个子菜单中。建议读者先完成上一篇教程。

一. 错误的方法

      有过对菜单编程经验的读者可能很自然的想到,可以使用如下代码添加子菜单

HRESULT CShlExtObj::QueryContextMenu (HMENU hmenu, 
                                      UINT uMenuIndex, 
                                      UINT uidFirstCmd,
                                      UINT uidLastCmd, 
                                      UINT uFlags )
{
  
	if (uFlags & CMF_DEFAULTONLY)
		return MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, 0);
	// 创建一个级联菜单
	HMENU hSubMenu=CreatePopupMenu();
	// 将菜单项添加到子菜单中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值