InkOverlay class
Represents an object that is useful for annotation scenarios where users are not concerned with performing recognition on ink but instead are interested in the size, shape, color, and position of the ink.
Creating the InkOverlay control behind a transparent control (such as a GroupBox with the WS_EX_TRANSPARENT property set) will prevent InkOverlay from collecting ink.
InkOverlay has these types of members:
Events
The InkOverlay class has these events.
Event | Description |
---|---|
CursorButtonDown | Occurs when the InkOverlay detects a cursor button that is down. |
CursorButtonUp | Occurs when the InkOverlay detects a cursor button that is up. |
CursorDown | Occurs when the cursor tip contacts the digitizing tablet surface. |
CursorInRange | Occurs when a cursor enters the physical detection range (proximity) of the tablet context. |
CursorOutOfRange | Occurs when the cursor leaves the physical detection range (proximity) of the tablet context. |
DoubleClick | Occurs when the InkOverlay object is double-clicked. |
Gesture | Occurs when an application-specific gesture is recognized. |
MouseDown | Occurs when the mouse pointer is over the InkOverlay object and a mouse button is pressed. |
MouseMove | Occurs when the mouse pointer is moved over the InkOverlay object. |
MouseUp | Occurs when the mouse pointer is over the InkOverlay object and a mouse button is released. |
MouseWheel | Occurs when the mouse wheel moves while the InkOverlay object has focus. |
NewInAirPackets | Occurs when an in-air packet is seen, which happens when a user moves a pen near the tablet and the cursor is within the InkOverlay object's window or the user moves a mouse within the InkOverlay object object's associated window. |
NewPackets | Occurs when the InkOverlay object receives packets. |
Painted | Occurs when the InkOverlay object has completed redrawing itself. |
Painting | Occurs before the InkOverlay object redraws itself. |
SelectionChanged | Occurs when the selection of ink within the control has changed, such as through alterations to the user interface, cut-and-paste procedures, or the Selection property. |
SelectionChanging | Occurs when the selection of ink within the control is about to change, such as through alterations to the user interface, cut-and-paste procedures, or the Selection property. |
SelectionMoved | Occurs when the position of the current selection has changed, such as through alterations to the user interface, cut-and-paste procedures, or the Selection property. |
SelectionMoving | Occurs when the position of the current selection is about to change, such as through alterations to the user interface, cut-and-paste procedures, or the Selection property. |
SelectionResized | Occurs when the size of the current selection has changed, such as through alterations to the user interface, cut-and-paste procedures, or the Selection property. |
SelectionResizing | Occurs when the size of the current selection is about to change, such as through alterations to the user interface, cut-and-paste procedures, or the Selection property. |
Stroke | Occurs when the user finishes drawing a new stroke on any tablet. |
StrokesDeleted | Occurs after strokes have been deleted from the Ink property. |
StrokesDeleting | Occurs before strokes are deleted from the Ink property. |
SystemGesture | Occurs when a system gesture is recognized. |
TabletAdded | Occurs when an IInkTablet is added to the system. |
TabletRemoved | Occurs when a Tablet is removed from the system. |
Interfaces
The InkOverlay class defines these interfaces.
Interface | Description |
---|---|
IInkOverlay | This object implements the IInkOverlay COM interface. |
Methods
The InkOverlay class has these methods.
Method | Description |
---|---|
Draw | Sets a rectangle in which to redraw the ink within the InkOverlay object. |
GetEventInterest | Returns the current state of a particular InkOverlay object event, that is, whether the event is being listened for or used. |
GetGestureStatus | Returns whether the InkOverlay object is interested in a particular gesture. |
GetWindowInputRectangle | Retrieves the window rectangle, in pixels, within which ink is drawn. |
HitTestSelection | Determines what portion of the selection was hit during a hit test. |
SetAllTabletsMode | This mode allows the InkOverlay object to collect ink from any tablet attached to the Tablet PC. |
SetEventInterest | Sets whether a specific event should be listened for or used. |
SetGestureStatus | Sets the interest of the InkOverlay object in a known gesture. |
SetSingleTabletIntegratedMode | This mode allows the InkOverlay object to collect ink from only one tablet. Ink from other tablets is ignored by the InkOverlay object. |
SetWindowInputRectangle | Sets the window rectangle, in pixels, to use to map drawn ink to the window. |
Properties
The InkOverlay class has these properties.
Property | Access type | Description |
---|---|---|
AttachMode |
Read/write |
Gets or sets the value that specifies whether the InkOverlay object is attached behind or in front of the known window. |
AutoRedraw |
Read/write |
Gets or sets a value that specifies whether the InkOverlay repaints the ink when the window is invalidated. |
CollectingInk |
Read-only |
Gets a value that specifies whether ink is currently being drawn on an InkOverlay object. |
CollectionMode |
Read/write |
Gets or sets the collection mode that determines whether ink, gestures, or both are recognized as the user writes. |
Cursors |
Read-only |
Gets the Cursors collection that is available for use in the inking region. |
DefaultDrawingAttributes |
Read/write |
Gets or sets the default InkDrawingAttributes object, which specifies the drawing attributes that are used when drawing and displaying ink. |
DesiredPacketDescription |
Read/write |
Gets or sets interest in aspects of the packet associated with ink drawn on the InkOverlay object. |
DynamicRendering |
Read/write |
Gets or sets a value that indicates whether ink is rendered as it is drawn. |
EditingMode |
Read/write |
Gets or sets a value that indicates whether the InkOverlay is in ink mode, deletion mode, or selecting/editing mode. |
Enabled |
Read/write |
Gets or sets a value that specifies whether the InkOverlay object collects pen input. |
EraserMode |
Read/write |
Gets or sets a value that indicates whether ink is erased by stroke or by point. |
EraserWidth |
Read/write |
Gets or sets a value that specifies the width of the eraser pen tip. |
Handle |
Read/write |
Gets or sets the handle of the window to which the InkOverlay object is attached. |
Ink |
Read/write |
Gets or sets the InkDisp object that is associated with the InkOverlay object. |
MarginX |
Read/write |
Gets or sets the margins along the x-axis, in pixels. |
MarginY |
Read/write |
Gets or sets the margins along the y-axis, in pixels. |
MouseIcon |
Read/write |
Gets or sets the current custom mouse icon. |
MousePointer |
Read/write |
Gets or sets a value that indicates the type of mouse pointer that appears when the mouse is over a particular part of the object. |
Renderer |
Read/write |
Gets or sets the InkRenderer object that is used to draw ink. |
Selection |
Read/write |
Gets or sets the InkStrokes collection that is currently selected inside the InkOverlay control. |
SupportHighContrastInk |
Read/write |
Gets or sets a value that specifies whether ink is rendered as just one color when the system is in High Contrast mode. |
SupportHighContrastSelectionUI |
Read/write |
Gets or sets a value that specifies whether all selection UI is drawn in high contrast when the system is in High Contrast mode. |
Tablet |
Read-only |
Gets the tablet device that the InkOverlay object is currently using to collect input. |
MFC Implementation Notes
If you attached the InkOverlay object to a CView object, release the InkOverlay object in response to the WM_DESTROY message as shown in the following example:
BOOL CRecognitionAlternatesSampleCppView::OnWndMsg(UINT msg, WPARAM wp, PARAM lp, LRESULT *pLR)
{
if(WM_DESTROY == msg)
m_spInkOverlay.Release();
return CView::OnWndMsg(msg, wp, lp, pLR);
}
Remarks
This object can be instantiated by calling the CoCreateInstance method in C++.
The InkOverlay object is well suited for note taking and basic scribbling. The primary intended use of this object is to display ink as ink.
In general, the run-time user interface for this object is a transparent window with opaque ink.
The MouseDown, MouseMove, MouseUp, and MouseWheel events return x-coordinates and y-coordinates in pixels, and not the HIMETRIC units that are associated with the ink space. This is because these events replace the mouse events of pen-unaware applications and these applications understand only pixels.
Caution
If you are setting the InkOverlay object's AttachMode property to InFront then create the InkOverlay object in the thread in which the form is running. Your application may stop responding if the InkOverlay object is created in a different thread and its AttachMode property is set to InFront.
Note
The InkOverlay object cannot be safely released on a non-UI thread.
To improve your application's performance, dispose your InkOverlay object when it is no longer needed.
If you attached the InkOverlay object to a CView object, release the InkOverlay object in response to the WM_DESTROY message as shown in the following example:
BOOL CRecognitionAlternatesSampleCppView::OnWndMsg(UINT msg, WPARAM wp, PARAM lp, LRESULT *pLR)
{
if(WM_DESTROY == msg)
m_spInkOverlay.Release();
return CView::OnWndMsg(msg, wp, lp, pLR);
}
Requirements
Requirement | Value |
---|---|
Minimum supported client |
Windows XP Tablet PC Edition [desktop apps only] |
Minimum supported server |
None supported |
Header |
|
Library |
|