_DTE.ActiveWindow Property

Returns the currently active window, or the top-most window if no others are active.

Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)

Window ActiveWindow { get; }

Property Value

Type: EnvDTE.Window
A Window object. Returns Nothing if no windows are open.

ActiveWindow returns the environment's active window.

You can set the caption only on Tool windows. If you attempt to set the caption on other window types, such as Document windows, you get the error, "Unspecified error."

Important noteImportant

For readability, the following code example does not contain security checking or complete error handling. Do not use the following code in a production environment.

Sub ActiveWindowExample(ByVal dte As DTE2)

    ' Create two text files.
    Dim doc1 As Document = _
        dte.ItemOperations.NewFile(, "Document1").Document
    dte.ItemOperations.NewFile(, "Document2")

    MsgBox("The active window is " & dte.ActiveWindow.Caption)

    If MsgBox("Activate Document1?", MsgBoxStyle.YesNo) = _
        MsgBoxResult.Yes Then
        doc1.Activate()
    End If

    MsgBox("The active window is " & dte.ActiveWindow.Caption)

End Sub
Important noteImportant

For readability, the following code example does not contain security checking or complete error handling. Do not use the following code in a production environment.

public void ActiveWindowExample(DTE2 dte)
{
    // Create two text files.
    Document doc1 = dte.ItemOperations.NewFile(@"General\Text File", 
        "Document1", Constants.vsViewKindPrimary).Document;
    dte.ItemOperations.NewFile(@"General\Text File", "Document2", 
        Constants.vsViewKindPrimary);

    MessageBox.Show("The active window is " + 
        dte.ActiveWindow.Caption);

    if (MessageBox.Show("Activate Document1?", "", 
        MessageBoxButtons.YesNo) == DialogResult.Yes)
        doc1.Activate();

    MessageBox.Show("The active window is " + 
        dte.ActiveWindow.Caption);
}
Important noteImportant

For readability, the following code example does not contain security checking or complete error handling. Do not use the following code in a production environment.

STDMETHODIMP CConnect::ActiveWindowExample(DTE2 * pApplication)
{
CComPtr<ItemOperations> pItemOperations;
CComPtr<Document> pDocument;
CComPtr<Window> pDocWindow;
CComPtr<Window> pDoc1Window;
CComPtr<Window> pDoc2Window;
CComBSTR bstrDesc;
CComBSTR bstrDocWindow;
CComBSTR bstrFile1Name = "MyDocument1";
CComBSTR bstrFile2Name = "MyDocument2";
CComBSTR bstrFileItem = "General\\Text File";
VARIANT_BOOL bReadOnly = false; 
HRESULT hr = S_FALSE;

while (hr != S_OK && pApplication != nullptr)
{
// create two text files
pApplication->get_ItemOperations(&pItemOperations);
if (pItemOperations != nullptr) pItemOperations->NewFile(bstrFileItem,bstrFile1Name,_bstr_t(vsViewKindTextView),&pDoc1Window); else break;
if (pItemOperations != nullptr) pItemOperations->NewFile(bstrFileItem,bstrFile2Name,_bstr_t(vsViewKindTextView),&pDoc2Window); else break;

//get the current active window 
pApplication->get_ActiveWindow(&pDocWindow);
if (pDocWindow != nullptr) pDocWindow->get_Caption(&bstrDocWindow); else break;
bstrDesc.Append("The active window is ");
bstrDesc.Append(bstrDocWindow);
_bstr_t bstrIntermed = bstrDesc;
MessageBox(NULL,(LPCSTR) bstrIntermed,"Active Window Example",MB_OK);
bstrDesc = "";

pDocWindow = nullptr;
if (MessageBox(NULL,"Activate Document1?", "", MB_YESNO) == IDYES) pDoc1Window->Activate();
//get the current active window 
pApplication->get_ActiveWindow(&pDocWindow);
if (pDocWindow != nullptr) pDocWindow->get_Caption(&bstrDocWindow); else break;
bstrDesc.Append("The active window is ");
bstrDesc.Append(bstrDocWindow);
bstrIntermed = bstrDesc;
MessageBox(NULL,(LPCSTR) bstrIntermed,"Active Window Example",MB_OK);

hr = S_OK;
return hr;

}
return hr;
}

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft