
I have Windows Forms Visual Studio Project; I have added the code to be able to use a finger instead of the mouse on touch screen monitor.
When I use a mouse, everything is working, but when I use a finger to top and double top on the screen also working only if I do it on any item on the form, but wh
en I use a finger on a form (on the empty space) I get an exception error, I attached a picture as well as code for the finger as a pointer.
Anyone knows what should be done, thanks in advance.
Code Here:
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case Win32.WM_POINTERDOWN:
case Win32.WM_POINTERUP:
case Win32.WM_POINTERUPDATE:
case Win32.WM_POINTERCAPTURECHANGED:
break;
default:
base.WndProc(ref m);
return;
}
int pointerID = Win32.GET_POINTER_ID(m.WParam);
Win32.POINTER_INFO pi = new Win32.POINTER_INFO();
if (!Win32.GetPointerInfo(pointerID, ref pi))
{
Win32.CheckLastError();
}
Point pt = PointToClient(pi.PtPixelLocation.ToPoint());
MouseEventArgs me = new MouseEventArgs(System.Windows.Forms.MouseButtons.Left, 1, pt.X, pt.Y, 0);
switch (m.Msg)
{
case Win32.WM_POINTERDOWN:
Console.WriteLine("TOCOU" + pt);
(Parent as Form1).Form1_MouseDown((this as object), me);
break;
case Win32.WM_POINTERUP:
Console.WriteLine("LEVANTOU");
(Parent as Form1).Form1_MouseUp((this as object), me);
break;
case Win32.WM_POINTERUPDATE:
Console.WriteLine("UPDATE");
(Parent as Form1).Form1_MouseMove((this as object), me);
break;
}
}