科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件在VisualStudio中使用Windows桌面搜索

在VisualStudio中使用Windows桌面搜索

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

计算机硬盘容量越来越大,您保存的信息量也越来越多。您拥有成千上万的文件和电子邮件消息,因此很难准确查找所需的信息。令人欣慰的是,Windows? 桌面搜索可以帮助您进行查找。

作者:Sergey Mishkovskiy 来源:微软 2007年10月16日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
创建加载项

  创建加载项是一个非常简单的过程。选择“文件”|“新建”|“项目”菜单项。在“新建项目”对话框中,选择“其他项目类型”,然后单击“扩展性”。在“模板”下,选择“Visual Studio 加载项”,为新加载项输入名称,然后单击“确定”。Visual Studio 加载项向导会指导您完成余下的操作。选择 C# 作为编程语言,Visual Studio 2005 作为编程工具,添加名称和说明,然后选中选项以创建“工具”菜单项并为自动创建的“关于”对话框添加信息。

  单击“完成”按钮后,您将完成加载项的框架以备使用。注意,项目生成器会为您添加 IDTExtensibility2 和 IDTCommandTarget 接口实现,以及设计时环境 (DTE) 可扩展性应用程序对象引用。

  大多数 Visual Studio 工具窗口相关项都显示在“视图”菜单下。要与之相匹配,可将加载项中的“工具”菜单引用更改为“视图”,将其文本更新到 Windows 桌面搜索,并将生成的菜单项和命令代码移到名为 CreateCommand 的方法中。

  下一步是更改代码调用 AddNamedCommand2 命令的方式,该命令可创建“视图”项。Visual Studio 可为新菜单项提供默认的图像,但您可能更喜欢使用自己的图像。要实现此操作,图像必须位于附属程序集中。若使用以前版本的 Visual Studio,则您必须为附属程序集创建一个单独的项目。若使用 Visual Studio 2005,则需要通过将资源文件添加到项目中来实现。

  将一个资源项添加到名为 WDSAddin.en 的加载项中,然后插入一个名为 1 的图标资源。编译带有新资源的加载项项目,将会在 en 文件夹下自动生成一个资源程序集。您可以将该资源 ID 1 与 AddNamedCommand2 调用一起使用来分配自己的菜单项图像。请不要忘记将 AddNamedCommand2 的 MSOButton 参数值更改为“false”,以表示您要使用自己的图像。

  添加命令后,您会重新获得命令对象引用,并可为其分配一个快捷键。命令接口具有一个 Bindings 属性,专用于此目的。它可返回分配给所有作用域的快捷方式集合。作用域包括全局、文本编辑器、Windows 窗体设计器等。请注意,作用域名称已本地化。

  BindCommandKey 方法负责分配快捷键。它包括一个用于设置快捷键的 try/catch 代码块。以这种方法进行设置可以防止在尝试更改只读键盘方案设置时引发异常。Ctrl+Alt+Shift+M 可成为工具窗口很好的快捷键,因为它模仿了 Windows 桌面搜索默认的 Ctrl+Alt+M 快捷键。

  注意,生成的加载项类代码可实现 IDTCommandTarget 接口,它可以通知 Visual Studio 该命令是否可在给定的上下文中使用。此功能可通过 QueryStatus 方法完成。如果确定用户可使用此命令,那么在选择该命令后,Exec 方法将会得到调用。使用这两种方法时,可选中命令名称以确保此命令确实需要处理。您可通过调用私有的 Show-WDSToolWindow 方法,利用 Exec 方法来显示 Windows 桌面搜索工具窗口。此方法可检查是否设置了工具窗口引用。如果已设置,则此方法会通过将 Visible 属性设置为“true”来显示工具窗口。否则 ShowWDSToolWindow 方法将创建并显示一个新的工具窗口。

  创建工具窗口

  您以前必须依靠 C++ shim 控件来托管工具窗口中的托管用户控件。同时已知工具窗口状态持久性存在问题,例如保存工具窗口位置、大小和停靠状态。Microsoft 已收到许多有关此方面的问题和反馈,并听取了有关可扩展性团队的好的建议。Visual Studio 2005 推出一个新的带有 CreateToolWindow2 方法的 Window2 接口,它使您可以托管工具窗口中的托管用户控件。CreateToolWindow2 的最后一个参数可返回一个托管用户控件的引用。

  要设置工具窗口,首先需要将一个名为 ToolWindowUserControl 的用户控件添加到您的项目中,然后插入顶部对齐的面板以作为工具栏。将一个客户区对齐的列表视图添加到标题面板下方用于搜索结果。图 2 显示创建工具窗口的代码。

  注意,CreateToolWindow2 方法希望您提供用户控件程序集的位置和完整的类名称。它还需要一个 GUID 以将工具窗口与 Window 类引用相关联。此参数可以是任何 GUID 值,但是需要生成一次并在以后保持一致,以使工具窗口状态持久性正常运行。如果 CreateToolWindow2 调用成功,您会获得一个对象引用,该引用可被安全的转换回工具窗口用户控件类类型。

  如果您具有工具窗口引用,就可以通过 SetTabPicture 调用来设置图像,并可通过将 Enabled 属性设置为“true”来显示工具窗口图像。Window.SetTabPicture 方法需要一个 GDI 位图,因此需要添加另一个名为 Resources 的资源文件,然后再将名为 WDSIcon 的图标资源添加到该文件中。由于 Visual Studio 可生成一个资源包装类,因此检索资源非常简单(必须在显示工具窗口前设置工具窗口图像):

以下是引用片段:
  _toolWindow.SetTabPicture(Resources.WDSIcon.ToBitmap().GetHbitmap());
  _toolWindow.Visible = true;

  为什么不对工具窗口重用 View 命令图标?命令和工具窗口图标的透明度要求有所不同。Visual Studio 命令图标使用透明石灰绿色 (0,255,0 RGB),而工具窗口图标使用透明品红色 (255,0,255 RGB)。

  常见的工具窗口创建方法是在加载项加载时或命令执行响应时创建工具窗口。之后,您应保留工具窗口引用直至加载项卸载为止,而不是创建新的工具窗口实例。您还应提供一个“视图”菜单项来显示工具窗口,以防用户将其关闭。如果将其关闭,工具窗口引用应继续为活动状态,并且仍可使工具窗口可见。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章