protected virtual void RaiseHwndMouseLClick(HwndMouseEventArgs args) { var handler = MouseLClick; if (handler != null) { handler(this, args); } }
// Handle mouse movement. private void BarGraphHostControl_MouseMoved(object sender, HwndMouseEventArgs e) { // Adjust light position. if (currentGraph != null) { Point adjustedTopLeft = GetControlPointInDIP(); // Get point relative to control. Point relativePoint = new Point(e.point.X - adjustedTopLeft.X, e.point.Y - adjustedTopLeft.Y); // Update light position. currentGraph.UpdateLight(relativePoint); } }
private void HostControl_MouseMoved(object sender, HwndMouseEventArgs e) { // Adjust light position. if (currentGraph != null) { // Convert mouse position to DIP (is raised in physical pixels). var posDip = GetPointInDIP(e.point); var adjustedTopLeft = GetControlPointInDIP(CompositionHostElement); // Get point relative to control. var relativePoint = new SysWin.Point(posDip.X - adjustedTopLeft.X, posDip.Y - adjustedTopLeft.Y); // Update light position. currentGraph.UpdateLight(relativePoint); } }
protected override IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { switch ((User32.WM)msg) { case User32.WM.WM_MOUSEMOVE: var pos = PointToScreen(new Point((short)(((int)lParam) & 0xffff), (short)(((int)lParam) >> 16))); var hwndMouseEventArgs = new HwndMouseEventArgs(); hwndMouseEventArgs.Point = pos; RaiseHwndMouseMove(hwndMouseEventArgs); break; case User32.WM.WM_LBUTTONDOWN: RaiseHwndMouseLClick(new HwndMouseEventArgs()); break; case User32.WM.WM_PAINT: RaisePaint(); break; } return(base.WndProc(hwnd, msg, wParam, lParam, ref handled)); }
protected virtual void RaiseHwndMouseLClick(HwndMouseEventArgs args) { MouseLClick?.Invoke(this, args); }
protected virtual void RaiseHwndMouseMove(HwndMouseEventArgs args) { MouseMoved?.Invoke(this, args); }
private void RaiseHwndMouseLClick(HwndMouseEventArgs args) { MouseLClick?.Invoke(this, args); }
private void RaiseHwndMouseMove(HwndMouseEventArgs args) { MouseMoved?.Invoke(this, args); }