_DTE.ActiveDocument 属性

定义

获取活动文档。

public:
 property EnvDTE::Document ^ ActiveDocument { EnvDTE::Document ^ get(); };
public:
 property EnvDTE::Document ^ ActiveDocument { EnvDTE::Document ^ get(); };
[System.Runtime.InteropServices.DispId(221)]
public EnvDTE.Document ActiveDocument { [System.Runtime.InteropServices.DispId(221)] get; }
[<System.Runtime.InteropServices.DispId(221)>]
[<get: System.Runtime.InteropServices.DispId(221)>]
member this.ActiveDocument : EnvDTE.Document
Public ReadOnly Property ActiveDocument As Document

属性值

Document

Document 对象。

属性

示例

重要

为方便起见,下面的代码示例不包含安全检查或完整的错误处理。 不要在生产环境中使用以下代码。

Sub ActiveDocumentExample()  
  Dim objTextDoc As TextDocument  
  Dim objEP As EditPoint  

  'Create a new text document.  
  Call DTE.ItemOperations.NewFile("General\Text File")  
  'Get a handle to the new document.  
  Set objTextDoc = DTE.ActiveDocument.Object("TextDocument")  
  Set objEP = objTextDoc.StartPoint.CreateEditPoint  
  'Create an EditPoint and add some text.  
  objEP.Insert "A test sentence."  
End Sub  

Sub DocumentExample()  
  Dim doc As Document  
  Dim desc As String  

  Set doc = DTE.ActiveDocument  
  desc = "You are editing a "  
  If (doc.ReadOnly) Then  
    desc = desc & "read-only"  
  Else  
    desc = desc & "writable"  
  End If  
  desc = desc & " document called " & doc.Name & " located at " & doc.Path  
  MsgBox desc  
End Sub  

重要

为方便起见,下面的代码示例不包含安全检查或完整的错误处理。 不要在生产环境中使用以下代码。

STDMETHODIMP CConnect::ActiveDocumentExample(DTE2 * pApplication)  
{  
CComPtr<ItemOperations> pItemOperations;  
CComPtr<Document> pDocument;  
CComPtr<Window> pDocWindow;  
CComPtr<TextPoint> pTextPoint;  
CComPtr<EditPoint> pEditPoint;  
CComPtr<TextDocument> pTextDocument;  
CComBSTR bstrFileName = "MyTextDocument";  
CComBSTR bstrFileItem = "General\\Text File";  
CComBSTR bstrFileText = "This is a line of text.";  
CComBSTR bstrModelKind = "TextDocument";  
CComPtr<IDispatch> pToolObject;  
HRESULT hr = S_FALSE;  

while (hr != S_OK && pApplication != nullptr)   
{  
// create a document - it will be the new active document  
pApplication->get_ItemOperations(&pItemOperations);  
if (pItemOperations != nullptr) pItemOperations->NewFile(bstrFileItem,bstrFileName,_bstr_t(vsViewKindTextView),&pDocWindow); else break;  

//get the current active document - use TextDocument interface so we can edit it  
pApplication->get_ActiveDocument(&pDocument);  
if (pDocument != nullptr) pDocument->Object(bstrModelKind, &pToolObject); else break;  
if (pToolObject != nullptr) pToolObject->QueryInterface(__uuidof(TextDocument), (LPVOID*)&pTextDocument); else break;  
if (pTextDocument != nullptr) pTextDocument->CreateEditPoint(pTextPoint,&pEditPoint); else break;  
if (pEditPoint != nullptr) pEditPoint->Insert(bstrFileText); else break;  

MessageBox(NULL, "Done, Active Document is new file. ", "Active Document Example", MB_OK);    
hr = S_OK;  
return hr;  
}  
return hr;  
}  
STDMETHODIMP CConnect::DocumentExample(DTE2 * pApplication)  
{  
CComPtr<Document> pDocument;  
CComBSTR bstrDesc;  
CComBSTR bstrDocName;  
CComBSTR bstrDocPath;  
VARIANT_BOOL bReadOnly = false;   
HRESULT hr = S_FALSE;  

while (hr != S_OK && pApplication != nullptr)  
{  
pApplication->get_ActiveDocument(&pDocument);  
bstrDesc.Append("You are editing a ");  
if (pDocument != nullptr)   
{  
pDocument->get_ReadOnly(&bReadOnly);  
pDocument->get_Name(&bstrDocName);  
pDocument->get_Path(&bstrDocPath);  
}  
else break;  
if (bReadOnly == true)  
bstrDesc.Append("read-only");  
else  
bstrDesc.Append("writable");  

bstrDesc.Append(" document called ");  
bstrDesc.Append(bstrDocName);  
bstrDesc.Append(" located at ");  
bstrDesc.Append(bstrDocPath);  

_bstr_t bstrIntermed = bstrDesc;  
MessageBox(NULL,(LPCSTR) bstrIntermed,"Document Example",MB_OK);   
hr = S_OK;  
return hr;  
}  
return hr;  
}  

注解

活动文档是一个具有焦点的文档。 若要使另一个文档处于活动状态,请在其窗口上设置焦点。

只能在工具窗口上设置标题。 如果尝试在其他窗口类型(如文档窗口)上设置标题,会收到错误 "未指定的错误"。

在 Microsoft Visual Studio 2005 中打开项目 属性 窗口时,"活动文档" 属性将引发异常。

适用于