17

我的应用程序中有一个文件列表,我希望允许人们右键单击一个项目并显示 Windows 资源管理器上下文菜单。我假设我需要使用 IContextMenu 接口,但我不确定从哪里开始。

4

3 回答 3

13

我写了一个库,也许可以帮助你。您可以使用库提供的控件,或者如果您不想这样做,查看代码可能会给您答案。

您可以在以下位置找到该库: http: //gong-shell.sourceforge.net/

请让我知道这是否有帮助!

于 2009-01-16T17:37:52.737 回答
7

Raymond Chen 的博客上有一个非常好的教程(尽管是 C++),它分为 11 个部分(按顺序):

  1. 初步尝试
  2. 显示上下文菜单
  3. 调用位置
  4. 关键背景
  5. 处理菜单消息
  6. 显示菜单帮助
  7. 调用默认动词
  8. 优化默认命令
  9. 添加自定义命令
  10. 复合扩展 - 基础
  11. 复合扩展 - 复合
于 2009-01-19T08:50:30.703 回答
4

我发现了一篇很棒的 Code Project 文章,它将所有内容都很好地封装到一个类中!

资源管理器外壳上下文菜单

就像下面的代码片段一样简单:

// Sample code

ShellContextMenu ctxMnu = new ShellContextMenu();
FileInfo[] arrFI = new FileInfo[1];
arrFI[0] = new FileInfo(this.treeMain.SelectedNode.Tag.ToString());
ctxMnu.ShowContextMenu(arrFI, this.PointToScreen(new Point(e.X, e.Y)));

唯一令人讨厌的事情是它需要一个 FileInfo[] 数组或一个 DirectoryInfo[] 数组,尽管稍微修改源非常容易,以便它需要一个 FileSystemInfo[] 数组

于 2009-08-20T04:07:11.823 回答