GetHotPoint Method (Automation Only)
GetHotPoint Method (Automation Only) |
Gets the hot point of the gesture, in ink space coordinates.
Declaration
[C++]
HRESULT GetHotPoint(
[in, out] long* X,
[in, out] long* Y
);
[Microsoft® Visual Basic® 6.0]
Public Sub GetHotPoint( _
X As Long, _
Y As Long _
)
Parameters
X
[in, out] The X-value of the hot point, in ink space coordinates.
Y
[in, out] The Y-value of the hot point, in ink space coordinates.
Return Value
HRESULT value | Description |
---|---|
S_OK | Error information is provided. |
E_POINTER | A parameter contained an invalid pointer. |
E_INK_EXCEPTION | An exception occurred while processing. |
Remarks
The hot point is the one distinguishing point of a gesture. It is usually the point of the angle in a gesture or the point at which the gesture is intended to occur in relation to the content around it. If thee is no discernable hot point for a known gesture, the starting point of the gesture is the hot point.
For example, the hot point of the Check gesture is the point of the angle, and the hot point of the Curlicue gesture is the start of the stroke that is the gesture.
For more information about how a hot point is used, see Making Windows Work with a Pen.
Example
[Visual Basic 6.0]
This Visual Basic 6.0 example displays application and system gesture event information in a multiline text edit control, Text1, on the main form window. Starting with a Standard EXE application and adding a reference to the Microsoft Tablet PC Type Library, this example adds a check box, Check1, which toggles tracking of System Gesture information. ApplicationGesture information reported includes the coordinates from the GetHotPoint method of the gesture.
Option Explicit
Dim WithEvents theInkCollector As InkCollector
Private Sub Check1_Click()
theInkCollector.SetEventInterest ICEI_SystemGesture, _
Not theInkCollector.GetEventInterest(ICEI_SystemGesture)
End Sub
Private Sub Form_Load()
Set theInkCollector = New InkCollector
theInkCollector.hWnd = Me.hWnd
'Set the ink collection mode to collect ink and gestures,
'and turn off all application gestures except the chevrons.
theInkCollector.CollectionMode = ICM_InkAndGesture
theInkCollector.SetGestureStatus IAG_AllGestures, False
theInkCollector.SetGestureStatus IAG_ChevronUp, True
theInkCollector.SetGestureStatus IAG_ChevronDown, True
theInkCollector.SetGestureStatus IAG_ChevronLeft, True
theInkCollector.SetGestureStatus IAG_ChevronRight, True
theInkCollector.Enabled = True
Check1.Value = 1
theInkCollector.SetEventInterest ICEI_SystemGesture, True
End Sub
Private Sub theInkCollector_Gesture( _
ByVal Cursor As MSINKAUTLib.IInkCursor, _
ByVal Strokes As MSINKAUTLib.InkStrokes, _
ByVal Gestures As Variant, _
Cancel As Boolean)
Dim theGesture As Variant
Dim X As Long
Dim Y As Long
Text1.Text = ""
For Each theGesture In Gestures
theGesture.GetHotPoint X, Y
Text1.Text = Text1.Text & "Gesture " & _
AppGestureName(theGesture.Id) & _
" at (" & X & "," & Y & ") confidence: " & _
ConfidenceName(theGesture.Confidence) & vbCrLf
Next
End Sub
Private Sub theInkCollector_SystemGesture( _
ByVal Cursor As MSINKAUTLib.IInkCursor, _
ByVal Id As MSINKAUTLib.InkSystemGesture, _
ByVal X As Long, ByVal Y As Long, _
ByVal Modifier As Long, _
ByVal Character As String, _
ByVal CursorMode As Long)
Text1.Text = "SystemGesture " & _
SystemGestureName(Id) & " (x:" & X & ",y:" & Y & ")"
End Sub
Private Function SystemGestureName(ByVal Id As InkSystemGesture) As String
Select Case Id
Case ISG_DoubleTap
SystemGestureName = "ISG_DoubleTap"
Case ISG_Drag
SystemGestureName = "ISG_Drag"
Case ISG_HoldEnter
SystemGestureName = "ISG_HoldEnter"
Case ISG_HoldLeave
SystemGestureName = "ISG_HoldLeave"
Case ISG_HoverEnter
SystemGestureName = "ISG_HoverEnter"
Case ISG_HoverLeave
SystemGestureName = "ISG_HoverLeave"
Case ISG_RightDrag
SystemGestureName = "ISG_RightDrag"
Case ISG_RightTap
SystemGestureName = "ISG_RightTap"
Case ISG_Tap
SystemGestureName = "ISG_Tap"
Case Else
SystemGestureName = "SystemGesture(" & Id & ")"
End Select
End Function
Private Function AppGestureName(ByVal Id As InkApplicationGesture) As String
Select Case Id
Case IAG_AllGestures
AppGestureName = "IAG_AllGestures"
Case IAG_NoGesture
AppGestureName = "IAG_NoGesture"
Case IAG_ChevronUp
AppGestureName = "IAG_ChevronUp"
Case IAG_ChevronDown
AppGestureName = "IAG_ChevronDown"
Case IAG_ChevronLeft
AppGestureName = "IAG_ChevronLeft"
Case IAG_ChevronRight
AppGestureName = "IAG_ChevronRight"
Case Else
AppGestureName = "AppGesture(" & Id & ")"
End Select
End Function
Private Function ConfidenceName(ByVal Id As InkRecognitionConfidence) As String
Select Case Id
Case IRC_Strong
ConfidenceName = "IRC_Strong"
Case IRC_Intermediate
ConfidenceName = "IRC_Intermediate"
Case IRC_Poor
ConfidenceName = "IRC_Poor"
Case Else
ConfidenceName = "Confidence(" & Id & ")"
End Select
End Function