用C++ Builder成立上下文菜单扩大处理器[VC/C++编程]
本文“用C++ Builder成立上下文菜单扩大处理器[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
当用户右击一个shell对象时,shell会显示它的上下文菜单.文件系统对象有大量的尺度菜单项,如"剪切"和"拷贝",这些都是缺省的菜单项.假如对象是一个文件,是文件类的成员,就可以够在注册表里指定附加的菜单项.Shell查抄注册表,看看文件范例能否与一些上下文菜单handler相关联,假如是,shell会咨询这些handler能否增添额外的菜单项.
上下文菜单handler是一种shell扩大handler,它增添号令到已有的上下文菜单中.上下文菜单handler都与特定的文件类相关联,并且在显示这类文件的成员的上下文菜单时调用.通过实现和注册这样一个handler,可以动态地增添菜单项到对象的上下文菜单上,从而为特别的对象定制菜单.
上下文菜单Handler的工作原理
作为一种shell扩大handler,上下文菜单handler同全部别的handler一样, 是进程内COM 对象,即对象作为动态衔接库 (DLL)实现.除了IUnknown接口外,上下文菜单还必须导出IShellExtInit和IContextMenu接口,作为挑选,上下文菜单也能导出IContextMenu2和IContextMenu3,这些接口可以实现自画菜单项.
IShellExtInit接口仅仅被shell用来初始化handler,主要的操作通过handler的IContextMenu接口举行.Shell首先调用IContextMenu::QueryContextMenu,传送一个HMENU句柄,这个办法用它来增添上下文菜单.假如用户亮选了这些新增添的某个号令项, IContextMenu::GetCommandString将被调用,以获得这条菜单的帮忙信息,把它显示在资源管理器的状况条上.假如用户单击了handler的条目,shell调用IContextMenu::InvokeCommand,从而handler可以履行符合的操作.
实现IContextMenu接口
1、实现QueryContextMenu办法
以上是“用C++ Builder成立上下文菜单扩大处理器[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |