InkPicture.HitTestSelection Method
InkPicture.HitTestSelection Method |
Returns a value that indicates which part of a selection, if any, was hit during a hit test.
Definition
Visual Basic .NET Public Function HitTestSelection( _
ByVal X As Integer, _
ByVal Y As Integer _
) As SelectionHitResultC# public SelectionHitResult HitTestSelection(
int X,
int Y
);Managed C++ public: SelectionHitResult* HitTestSelection(
int *X,
int *Y
);
Parameters
X System.Int32. The x-position, in pixels, of the hit test. Y System.Int32. The y-position, in pixels, of the hit test.
Return Value
Microsoft.Ink.SelectionHitResult. A member of the SelectionHitResult enumeration, which specifies which part of a selection, if any, was hit during a hit test.
None0
Specifies no part of the selection was hit. Northwest1
Specifies the northwest corner sizing handle was hit. Southeast2
Specifies the southeast corner sizing handle was hit. Northeast3
Specifies the northeast corner sizing handle was hit. Southwest4
Specifies the southwest corner sizing handle was hit. East5
Specifies the east side sizing handle was hit. West6
Specifies the west side sizing handle was hit. North7
Specifies the north side sizing handle was hit. South8
Specifies the south side sizing handle was hit. Selection9
Specifies the selection itself was hit (no selection handle was hit).
Exceptions
ObjectDisposedException : The InkPicture control is disposed.
Remarks
This method is only useful if the InkPicture.EditingMode property is set to Select.
Examples
[C#]
This C# example uses a check box, theCheckBox, to toggle an InkPicture control, theInkPicture, between inking and selection modes, and uses the results from the HitTestSelection method to change the color of the selection when a user clicks one of the sizing handles of the selection rectangle.
using System; using System.Windows.Forms; using Microsoft.Ink; namespace theApplication { public class Form1: System.Windows.Forms.Form { private System.Windows.Forms.CheckBox theCheckBox; private Microsoft.Ink.InkPicture theInkPicture; public Form1() { InitializeComponent(); } private void InitializeComponent() { this.theCheckBox = new System.Windows.Forms.CheckBox(); this.theInkPicture = new Microsoft.Ink.InkPicture(); this.SuspendLayout(); // // theCheckBox // this.theCheckBox.Name = "theCheckBox"; this.theCheckBox.TabIndex = 0; this.theCheckBox.Text = "Selection Mode"; this.theCheckBox.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); // // theInkPicture // this.theInkPicture.Location = new System.Drawing.Point(24, 40); this.theInkPicture.MarginX = -2147483648; this.theInkPicture.MarginY = -2147483648; this.theInkPicture.Name = "theInkPicture"; this.theInkPicture.Size = new System.Drawing.Size(248, 200); this.theInkPicture.TabIndex = 1; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(292, 266); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.theInkPicture, this.theCheckBox}); this.Name = "Form1"; this.Text = "HitTestSelection"; this.Load += new System.EventHandler(this.Form1_Load); this.ResumeLayout(false); } [STAThread] static void Main() { Application.Run(new Form1()); } // Create theInkPicture, add the mouse down event handler, and enable theInkPicture private void Form1_Load(object sender, System.EventArgs e) { theInkPicture.MouseDown += new MouseEventHandler(theInkPicture_MouseDown); theInkPicture.InkEnabled = true; } // Handle the mouse down event for the InkPicture private void theInkPicture_MouseDown(object sender, MouseEventArgs e) { if (theInkPicture.EditingMode == InkOverlayEditingMode.Select) { SelectionHitResult result = theInkPicture.HitTestSelection(e.X, e.Y); DrawingAttributes theDrawingAttributes = new DrawingAttributes(); if (result == SelectionHitResult.Northwest) { theDrawingAttributes.Color = System.Drawing.Color.Green; } else if (result == SelectionHitResult.Northeast) { theDrawingAttributes.Color = System.Drawing.Color.Red; } else if (result == SelectionHitResult.Southeast) { theDrawingAttributes.Color = System.Drawing.Color.Yellow; } else if (result == SelectionHitResult.Southwest) { theDrawingAttributes.Color = System.Drawing.Color.Blue; } theInkPicture.Selection.ModifyDrawingAttributes(theDrawingAttributes); this.Refresh(); } } private void checkBox1_CheckedChanged(object sender, System.EventArgs e) { // Cannot change EditingMode while the InkPicture is collecting ink if (true == theInkPicture.CollectingInk) { theCheckBox.Checked = !theCheckBox.Checked; return; } // Toggle the EditingMode between Inking and Selection if (theInkPicture.EditingMode == InkOverlayEditingMode.Ink) { theInkPicture.EditingMode = InkOverlayEditingMode.Select; } else { theInkPicture.EditingMode = InkOverlayEditingMode.Ink; } } } }
[VB.NET]
This Microsoft® Visual Basic® .NET example uses a check box, theCheckBox, to toggle an InkPicture control, theInkPicture, between inking and selection modes, and uses the results from the HitTestSelection method to change the color of the selection when a user clicks one of the sizing handles of the selection rectangle.
Option Explicit On Imports System Imports System.Windows.Forms Imports Microsoft.Ink Public Class Form1 Inherits System.Windows.Forms.Form Private WithEvents theCheckBox As System.Windows.Forms.CheckBox Public Sub New() InitializeComponent() End Sub Friend WithEvents theInkPicture As Microsoft.Ink.InkPicture Private Sub InitializeComponent() Me.theCheckBox = New System.Windows.Forms.CheckBox() Me.theInkPicture = New Microsoft.Ink.InkPicture() Me.SuspendLayout() ' 'theCheckBox ' Me.theCheckBox.Name = "theCheckBox" Me.theCheckBox.TabIndex = 0 Me.theCheckBox.Text = "Selection Mode" ' 'theInkPicture ' Me.theInkPicture.BackColor = System.Drawing.SystemColors.ControlLightLight Me.theInkPicture.Location = New System.Drawing.Point(16, 32) Me.theInkPicture.MarginX = -2147483648 Me.theInkPicture.MarginY = -2147483648 Me.theInkPicture.Name = "theInkPicture" Me.theInkPicture.Size = New System.Drawing.Size(264, 224) Me.theInkPicture.TabIndex = 1 ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(292, 266) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.theInkPicture, Me.theCheckBox}) Me.Name = "Form1" Me.Text = "HitTestSelection" Me.ResumeLayout(False) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load theInkPicture.InkEnabled = True End Sub Private Sub theInkPicture_MouseDown(ByVal sender As System.Object, ByVal e As MouseEventArgs) _ Handles theInkPicture.MouseDown If theInkPicture.EditingMode = InkOverlayEditingMode.Select Then Dim result As SelectionHitResult result = theInkPicture.HitTestSelection(e.X, e.Y) Dim theDrawingAttributes As New DrawingAttributes() If result = SelectionHitResult.Northwest Then theDrawingAttributes.Color = Color.Green ElseIf result = SelectionHitResult.Northeast Then theDrawingAttributes.Color = Color.Red ElseIf result = SelectionHitResult.Southeast Then theDrawingAttributes.Color = Color.Yellow ElseIf result = SelectionHitResult.Southwest Then theDrawingAttributes.Color = Color.Blue End If theInkPicture.Selection.ModifyDrawingAttributes(theDrawingAttributes) Refresh() End If End Sub Private Sub theCheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles theCheckBox.CheckedChanged ' Can't change EditingMode while the InkPicture is collecting ink If theInkPicture.CollectingInk Then theCheckBox.Checked = Not theCheckBox.Checked End If 'Toggle the EditingMode between Inking and Selection If theInkPicture.EditingMode = InkOverlayEditingMode.Ink Then theInkPicture.EditingMode = InkOverlayEditingMode.Select Else theInkPicture.EditingMode = InkOverlayEditingMode.Ink End If End Sub End Class
See Also