5

社内で使用する 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);
        }

ウィンドウが作成またはアクティブ化されるたびにこのコードを実行できますが、ユーザーがソリューション エクスプローラー (またはアドイン) でスタートアップ プロジェクトを変更し、Visual Studio の別のウィンドウに移動しない場合、キャプションは更新されません。変更が行われ次第、キャプションを更新したいと思います。

4

1 に答える 1

1

IVsMonitorSelectionはい、イベントにサブスクライブして で処理SEID_StartupProjectする必要がありますOnElementValueChanged()

このコードをチェックしてください、それは非常に自明です:

https://bitbucket.org/thirteen/switchstartupproject/src/a80f0deb737c/SwitchStartupProject/SwitchStartupProjectPackage.cs

于 2012-11-30T11:06:44.393 に答える