针对给定项目系统提供您的 属性 窗口是可能的,而不是扩展 Visual Studio 集成开发环境提供的 属性 窗口 (IDE)。 该 most-often 遇到的情况是您您实现对象在窗架已经放置。
在事件不实现在窗架站点的对象,但是,使用其他一些方法仍可以使用它的,有许多方法可以访问 IVsWindowFrame 接口 (在此页上的最后程序列表中。
提供自己的 " 属性 " 窗口
定义表示您的 属性 窗口实现的 GUID。
在您的 SetSite 实现中,使用 IProfferService 服务提供您的 属性 窗口作为服务到 Visual Studio 环境。
调用您的 " 属性 " 窗口
调用 SetSite 方法。
SVsTrackSelectionEx 的QueryService 从 IServiceProvider 传递到 SetSite 方法。
获取从 SVsTrackSelectionEx 服务的 IVsTrackSelectionEx 。
调用与第一个参数的 OnElementValueChange 设置为 SEID_PropertyBrowserSID (来自 VSSELELEMID 枚举) 和第三个参数, varValue,表示表示您的 属性 窗口的 GUID 的字符串形式。 使此调用您的 属性 窗口的第一个创建一次只文档窗口。 在调用之后此 属性 窗口与您的窗架。
获取窗架对象,而不是实现
可以 SVsTrackSelectionEx 服务的 QueryService 从与参数 propid 的 GetProperty 设置为 VSFPROPID_SPFrame。
可以获取活动通过调用 GetCurrentSelection 文档窗口通过 SVsMonitorSelection 服务。 将参数 elementid 到 SEID_WindowFrame,将 VSSELELEMID 枚举。