void GestureNativeWindow_MouseDown(object sender, CancelableMouseEventArgs e) { try { if (e.Clicks == 1 && e.Button == System.Windows.Forms.MouseButtons.Right) { isMouseDown = true; preX = e.X; preY = e.Y; e.Cancel = true; preMsg = e.Message; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
protected override void WndProc(ref Message m) { switch (m.Msg) { case 7: if (this.Focus != null) { this.Focus(this, EventArgs.Empty); } break; case 8: if (this.LostFocus != null) { this.LostFocus(this, EventArgs.Empty); } break; case 15: { RECT rect = new RECT(); bool bErase = false; NativeMethods.GetUpdateRect(base.Handle, ref rect, ref bErase); base.WndProc(ref m); if (this.Paint != null) { PaintEventArgs e = new PaintEventArgs(this.Graphics, new Rectangle(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top)); this.Paint(this, e); } return; } case 0x10: this.OnClose(); break; case 20: return; case 0x114: case 0x115: { ScrollEventArgs args = new ScrollEventArgs(ScrollEventType.First, 0, ScrollOrientation.HorizontalScroll); this.OnScroll(args); break; } case 0x200: if (this.MouseMove != null) { this.MouseMove(this, new MouseEventArgs(MouseButtons, 0, NativeMethods.SignedLOWORD(m.LParam), NativeMethods.SignedHIWORD(m.LParam), 0)); } break; case WM_LBUTTONDOWN: if (this.MouseDown != null) { var args = new CancelableMouseEventArgs(MouseButtons, 1, NativeMethods.SignedLOWORD(m.LParam), NativeMethods.SignedHIWORD(m.LParam), 0); args.Message = m; this.MouseDown(this, args); if( args.Cancel ) return; } break; case WM_MBUTTONDOWN: if (this.MouseDown != null) { var args = new CancelableMouseEventArgs(MouseButtons, 1, NativeMethods.SignedLOWORD(m.LParam), NativeMethods.SignedHIWORD(m.LParam), 0); args.Message = m; this.MouseDown(this, args); if( args.Cancel ) return; } break; case WM_RBUTTONDOWN: if (this.MouseDown != null) { var args = new CancelableMouseEventArgs(MouseButtons, 1, NativeMethods.SignedLOWORD(m.LParam), NativeMethods.SignedHIWORD(m.LParam), 0); args.Message = m; this.MouseDown(this, args); if( args.Cancel ) return; } break; case WM_LBUTTONUP: if(this.MouseUp != null ) { var args = new CancelableMouseEventArgs(MouseButtons, 0, NativeMethods.SignedLOWORD(m.LParam), NativeMethods.SignedHIWORD(m.LParam), 0); args.Message = m; this.MouseUp(this, args); if( args.Cancel ) return; } break; case WM_RBUTTONUP: if(this.MouseUp != null ) { var args = new CancelableMouseEventArgs(MouseButtons, 0, NativeMethods.SignedLOWORD(m.LParam), NativeMethods.SignedHIWORD(m.LParam), 0); args.Message = m; this.MouseUp(this, args); if (args.Cancel) return; } break; case WM_MBUTTONUP: if(this.MouseUp != null ) { var args = new CancelableMouseEventArgs(MouseButtons, 0, NativeMethods.SignedLOWORD(m.LParam), NativeMethods.SignedHIWORD(m.LParam), 0); args.Message = m; this.MouseUp(this, args); if( args.Cancel ) return; } break; case 0x100: { base.WndProc(ref m); Keys keyData = ((Keys)((int)m.WParam)) | ModifierKeys; this.OnKeyDown(new KeyEventArgs(keyData)); return; } case 0x101: { base.WndProc(ref m); Keys keys2 = ((Keys)((int)m.WParam)) | ModifierKeys; this.OnKeyUp(new KeyEventArgs(keys2)); return; } case 0x102: case 0x106: this.OnKeyPress(new KeyPressEventArgs((char)((ushort)((long)m.WParam)))); break; case 0x47: this.OnResize(); break; } base.WndProc(ref m); }
void GestureNativeWindow_MouseUp(object sender, CancelableMouseEventArgs e) { if (isMouseDown == true) { NativeMethods.InvalidateRect(this.handler, IntPtr.Zero, true); Application.DoEvents(); e.Cancel = analyzer.Count > 10; if (e.Cancel) { } else { e.Cancel = false; base.WndProc(ref preMsg); } analyzer.Analyzer(); } isMouseDown = false; }