IVsTextView Interface
Manages the text view of an editor window and contains methods to manage the text view. The view is essentially the editor window shown in the user interface (UI).
Namespace: Microsoft.VisualStudio.TextManager.Interop
Assembly: Microsoft.VisualStudio.TextManager.Interop (in Microsoft.VisualStudio.TextManager.Interop.dll)
Syntax
'宣告
<InterfaceTypeAttribute()> _
<GuidAttribute("BB23A14B-7C61-469A-9890-A95648CED5E6")> _
Public Interface IVsTextView
'用途
Dim instance As IVsTextView
[InterfaceTypeAttribute()]
[GuidAttribute("BB23A14B-7C61-469A-9890-A95648CED5E6")]
public interface IVsTextView
[InterfaceTypeAttribute()]
[GuidAttribute(L"BB23A14B-7C61-469A-9890-A95648CED5E6")]
public interface class IVsTextView
[<InterfaceTypeAttribute()>]
[<GuidAttribute("BB23A14B-7C61-469A-9890-A95648CED5E6")>]
type IVsTextView = interface end
public interface IVsTextView
Remarks
The IVsTextView interface is not the MDI child, but an individual window of text. If a splitter is involved, there can be multiple views in an MDI child. The term, caret, refers to the text insertion point, while the term, cursor, refers to the mouse pointer.
警告
This interface is not thread-safe. You should not call anything on this interface from anything but the main UI thread.
If you need to perform any operations on the view from a different thread, you may either:
Use the interface IVsThreadSafeTextView.
Call the GetWindowHandle method and use the PostMessage method to post messages to the main thread.
Some methods on IVsTextViewuse ViewCol coordinates (for example, GetTextStream and GetCaretPos), while others use CharIndex coordinates (for example, GetWordExtent). ViewCol coordinates may include virtual space while CharIndex coordinates are only an offset into a buffer line and never include virtual space.
If you get a coordinate in ViewCol coordinates, then you should only call methods that take CharIndex coordinates after making sure that the ViewCol coordinate does not lie in the virtual space region. For example, if you call the following:
long iLine;
long cCount;
ViewCol iCol;
IVsTextView::SomeMethod(&iLine, &icol);
Then you must check to be sure that the following is true:
IVsTextBuffer::GetLengthOfLine(iLine, &cCount);
iCol < cCount
Then call the following:
IVsTextView::SomeOtherMethod(ViewCol(iCol ))
// where SomeOtherMethod takes ViewCol coordinates
See illustrations of the implementation and/or calling of this interface in the sample Figures Language Service.
Notes to Callers
Called by clients who want to manage their view.