我正在构建一个visual studio 2010加载项,供我公司内部使用。我想自定义主窗口标题以显示当前启动项目的名称。我可以使用以下代码设置主窗口的标题:
DTE d = GlobalClass.dte2 as DTE;
IntPtr hWnd = new System.IntPtr(d.MainWindow.HWnd);
if (d.Solution.SolutionBuild.StartupProjects != null)
{
object[] sStartUpProject = (object[])d.Solution.SolutionBuild.StartupProjects;
string Caption = d.MainWindow.Caption + "Current Project: " + (string)sStartUpProject[0];
SendMessage(hWnd, WM_SETTEXT, new IntPtr(0), Caption);
}
我可以在创建或激活窗口时触发此代码,但如果用户更改解决方案资源管理器(或我的加载项)中的启动项目并且未移动到另一个窗口,则不会更新标题视觉工作室。我希望标题在更改后立即更新。
答案 0 :(得分:1)
是的,您需要订阅IVsMonitorSelection
个活动,并在SEID_StartupProject
处理OnElementValueChanged()
。
查看此代码,这是非常自我解释的: