예제 #1
0
        /// <summary>
        /// 鼠标拖动事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void hWindowControl1_HMouseMove(object sender, HMouseEventArgs e)
        {
            //if (!m_Tools.ObjectValided(m_Image))
            //{
            //    return;
            //}

            //if (MouseButtons == MouseButtons.Left)
            //{
            //    try
            //    {
            //        int x = (int)e.X;
            //        int y = (int)e.Y;
            //        curPoint = new Point(x, y);
            //        int dx = curPoint.X - mouseDown_point.X;
            //        int dy = curPoint.Y - mouseDown_point.Y;
            //        if (part_rectangle != null)
            //        {
            //            int row1 = inirectangle.X - dx;
            //            int col1 = inirectangle.Y - dy;
            //            Size size = inirectangle.Size;
            //            part_rectangle = new Rectangle(new Point(row1, col1), size);

            //            hWindowControl1.HalconWindow.ClearWindow();
            //            hWindowControl1.ImagePart = part_rectangle;
            //            hWindowControl1.HalconWindow.DispObj(m_Image);
            //            hWindowControl1.Refresh();
            //        }
            //    }
            //    catch
            //    {

            //    }
            //}
        }
예제 #2
0
        private void hWindowControl1_HMouseWheel(object sender, HMouseEventArgs e)
        {
            if (!ho_ImageEmpty)
            {
                double ScaleTemp = 1;
                if (e.Delta > 0)
                {
                    if (ZoomScaleHControl < 20)
                    {
                        ZoomScaleHControl += ZoomScaleFactor;
                        ScaleTemp          = ZoomScaleHControl / (ZoomScaleHControl - ZoomScaleFactor);
                    }
                }
                else if (e.Delta < 0)
                {
                    if (ZoomScaleHControl > 2 * ZoomScaleFactor)
                    {
                        ZoomScaleHControl -= ZoomScaleFactor;
                        ScaleTemp          = ZoomScaleHControl / (ZoomScaleHControl + ZoomScaleFactor);
                    }
                }
                UpdateHalconControl(ZoomScaleHControl);
                HOperatorSet.DispObj(ho_Image, hWindowControl1.HalconWindow);

                hWindowControl1.Left += (int)(MouseLocationOnHWindows.X * (1 - ScaleTemp));
                hWindowControl1.Top  += (int)(MouseLocationOnHWindows.Y * (1 - ScaleTemp));

                toolStripLabel3.Text = "Zoom: " + ZoomScaleHControl;
            }
        }
예제 #3
0
        private void hWindowControl1_HMouseUp(object sender, HMouseEventArgs e)
        {
            try
            {
                switch (e.Button)
                {
                case MouseButtons.Left:                                   //左键
                    this.Cursor   = System.Windows.Forms.Cursors.Default; //变回默认
                    _b_leftButton = false;                                //设置按钮状态
                    break;

                case MouseButtons.Right:    //右键
                    _b_rightButton = false; //设置按钮状态
                    break;

                case MouseButtons.Middle:
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                StatusMessage.Text = ex.Message;
            }
        }
예제 #4
0
        private void mouseWheel(object sender, HMouseEventArgs e)
        {
            double scale;
            int    activeROIidx = -1;

            if (roiManager != null && (dispROI == MODE_INCLUDE_ROI))
            {
                activeROIidx = roiManager.mouseDownAction(e.X, e.Y);
            }

            if (activeROIidx == -1)
            {
                switch (stateView)
                {
                case MODE_VIEW_ZOOM:
                    if (e.Delta > 0)
                    {
                        scale = 0.9;
                    }
                    else
                    {
                        scale = 1 / 0.9;
                    }
                    zoomImage(e.X, e.Y, scale);
                    break;

                default:
                    break;
                }
            }
        }
예제 #5
0
        public void hWindow_HMouseMove(object sender, HMouseEventArgs e)
        {
        //    int _row_MouseMove, _column_MouseMove;
            int button;
            if (_flag_act == true)
            {
                try
                {
                    _hWindowShow.GetMposition(out _row_MouseMove, out _column_MouseMove, out button);
                    if (button == 1)
                    {
                        MoveImage();
                    }

                }

                catch (HalconException hEx)
                {

                  //  LogHelper.WriteLogError(sender.GetType(), hEx.ToString());
                } 
            }
            
            
        }
예제 #6
0
        private void hWindowControl1_HMouseDown(object sender, HMouseEventArgs e)
        {
            int temp_button_state;

            try
            {
                switch (e.Button)
                {
                case MouseButtons.Left:                                                                                                 //鼠标左键按下检测
                    this.Cursor = System.Windows.Forms.Cursors.Hand;                                                                    //把鼠标显示为手型
                    hWindowControl1.HalconWindow.GetMpositionSubPix(out _start_positionY, out _start_positionX, out temp_button_state); //得到亚像素组成 取得坐标,及鼠标的状态
                    _b_leftButton = true;                                                                                               //记录鼠标的状态
                    break;

                case MouseButtons.Right:
                    _b_rightButton = true;                                 //记录鼠标的状态
                    this.Cursor    = System.Windows.Forms.Cursors.Default; //把鼠标显示为手型
                    break;

                case MouseButtons.Middle:    //鼠标中间按钮按下
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                StatusMessage.Text = ex.Message;//显示的运行错误
            }
        }
예제 #7
0
        private void mouseWheel(object sender, HMouseEventArgs e)
        {
            if (inMeasureLine)
            {
                return;
            }
            double Row, Column;
            int    Button;

            try
            {
                viewPort.HalconWindow.GetMpositionSubPix(out Row, out Column, out Button);
            }
            catch (HalconException)
            {
                return;
            }

            double mode = 1;

            if (e.Delta > 0)
            {
                mode = 1;
            }
            else
            {
                mode = -1;
            }
            DispImageZoom(mode, Row, Column);
        }
예제 #8
0
        private void mCtrl_HWindow_HMouseDown(object sender, HMouseEventArgs e)
        {
            i += 1;

            System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();

            timer.Interval = 300;

            timer.Tick += (s, e1) => { timer.Enabled = false; i = 0; };

            timer.Enabled = true;

            if (i % 2 == 0)
            {
                timer.Enabled = false;

                i = 0;

                if (doubleClick != null)
                {
                    doubleClick();
                }

                Application.DoEvents();
                Thread.Sleep(5);
                DispImageFit();
                //this.WindowState = (this.WindowState == FormWindowState.Maximized ? FormWindowState.Normal : FormWindowState.Maximized);
            }
        }
예제 #9
0
        private void HWindowControl1_HMouseDown(object sender, HMouseEventArgs e)
        {
            if (drawFrame == DrawFrame.Brush)
            {
                HRegion region = new HRegion(e.Y, e.X, (int)brushSize);
                if (e.Button == MouseButtons.Left)
                {
                    ChangeMaskHRegion(region);
                }
                DisplayMaskRegion();
                hWindowControl1.HalconWindow.SetColor("blue");
                hWindowControl1.HalconWindow.DispObj(region);
                region.Dispose();
            }


            if (ctrller.ActiveROIIndex < 0 && rOI == null && drawFrame != DrawFrame.Brush)
            {
                if (e.Button == MouseButtons.Left)
                {
                    hWndCtrller.SetViewMode(HWndCtrller.MODE_VIEW_MOVE);
                }
            }
            rOI = null;
        }
예제 #10
0
        private void hWindowControl1_HMouseWheel(object sender, HMouseEventArgs e)
        {
            if (Image == null)
            {
                return;
            }
            Rectangle rec = new Rectangle();

            rec = hWindowControl1.ImagePart;
            if (e.Delta > 0)
            {
                rec.Width  = (int)(rec.Width * 0.8);
                rec.Height = (int)(rec.Height * 0.8);
                int org_x = (int)((double)rec.X + (e.X - (double)rec.X) * 0.2);
                int org_y = (int)((double)rec.Y + (e.Y - (double)rec.Y) * 0.2);
                rec.X = org_x;
                rec.Y = org_y;
                hWindowControl1.ImagePart = rec;
            }
            else if (e.Delta < 0)
            {
                rec.Width  = (int)(rec.Width * 1.2);
                rec.Height = (int)(rec.Height * 1.2);
                int org_x = (int)((double)rec.X - (e.X - (double)rec.X) * 0.2);
                int org_y = (int)((double)rec.Y - (e.Y - (double)rec.Y) * 0.2);
                rec.X = org_x;
                rec.Y = org_y;
                hWindowControl1.ImagePart = rec;
            }
            DisplayObj(_DisplayType);
            DisplayAll(true);
        }
예제 #11
0
 /// <summary>
 /// mouse down
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void hWindowControl1_HMouseDown(object sender, HMouseEventArgs e)
 {
     #region hwindowcontrol控件中的图像移动,缩放
     HTuple    width, height;
     Rectangle part_rectangle;
     Rectangle inirectangle;
     Point     mouseDown_point = new Point();
     Point     curPoint        = new Point();
     #endregion
     if (MouseButtons == MouseButtons.Left)
     {
         inirectangle = hWindowControl1.ImagePart;
         int x = (int)e.X;
         int y = (int)e.Y;
         mouseDown_point = new Point(x, y);
     }
     if (MouseButtons == MouseButtons.Right)
     {
         HOperatorSet.GetImageSize(m_Image, out width, out height);
         // part_rectangle = new Rectangle(0, 0, width, height);
         hWindowControl1.HalconWindow.ClearWindow();
         // hWindowControl1.ImagePart = part_rectangle;
         hWindowControl1.HalconWindow.DispObj(m_Image);
     }
 }
예제 #12
0
        /// <summary>
        /// mouse wheel
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void hWindowControl1_HMouseWheel(object sender, HMouseEventArgs e)
        {
            if (!m_Tools.ObjectValided(m_Image))
            {
                return;
            }
            Rectangle rec = new Rectangle();

            rec = hWindowControl1.ImagePart;
            if (e.Delta > 0)   //放大图片
            {
                rec.Width  = (int)(rec.Width * 0.8);
                rec.Height = (int)(rec.Height * 0.8);
                int org_x = (int)((double)rec.X + (e.X - (double)rec.X) * 0.2);
                int org_y = (int)((double)rec.Y + (e.Y - (double)rec.Y) * 0.2);
                rec.X = org_x;
                rec.Y = org_y;
                hWindowControl1.ImagePart = rec;
            }
            else if (e.Delta < 0)   //缩小图片
            {
                rec.Width  = (int)(rec.Width * 1.2);
                rec.Height = (int)(rec.Height * 1.2);
                int org_x = (int)((double)rec.X - (e.X - (double)rec.X) * 0.2);
                int org_y = (int)((double)rec.Y - (e.Y - (double)rec.Y) * 0.2);
                rec.X = org_x;
                rec.Y = org_y;
                hWindowControl1.ImagePart = rec;
            }

            hWindowControl1.HalconWindow.ClearWindow();
            hWindowControl1.HalconWindow.DispObj(m_Image);
            hWindowControl1.Refresh();
        }
예제 #13
0
 private void hWindowControl1_HMouseUp(object sender, HMouseEventArgs e)
 {
     try
     {
         #region 无用代码
         //#region  切换鼠标状态
         //switch (e.Button)
         //{
         //    case MouseButtons.Left://左键
         //        this.Cursor = System.Windows.Forms.Cursors.Default;//变回默认
         //        _b_leftButton = false;//设置按钮状态
         //        break;
         //    case MouseButtons.Right://右键
         //        _b_rightButton = false;//设置按钮状态
         //        break;
         //    case MouseButtons.Middle:
         //        break;
         //    default:
         //        break;
         //}
         //#endregion
         #endregion
     }
     catch (Exception ex)
     {
         StatusMessage.Text = ex.Message;
     }
 }
예제 #14
0
        public static HTuple mousex = 0, mousey = 0;//鼠标点下时的xy像素坐标
        public static void mousewheel(HTuple ID, HObject img, HMouseEventArgs e)
        {
            try
            {
                HTuple row1, col1, row2, col2;
                HTuple row3, col3, button3;
                HOperatorSet.GetImageSize(img, out Width, out Height);
                HOperatorSet.GetPart(ID, out row1, out col1, out row2, out col2);
                HOperatorSet.ClearWindow(ID);
                int    xx  = Width;
                int    yy  = Height;
                double div = Convert.ToDouble(yy) / Convert.ToDouble(xx);
                HOperatorSet.GetMposition(ID, out row3, out col3, out button3);
                if (e.Delta > 0)
                {
                    zoom = 1 + 0.001 * e.Delta;
                }
                if (e.Delta < 0)
                {
                    zoom = Math.Max(0.01F, (1 + 0.001 * e.Delta));
                }
                HTuple aaa   = (col2 - col1) / zoom;
                HTuple bbb   = aaa * div;
                double biliX = (col3 - col1) / (col2 - col1); //左右显示比例
                double biliY = (row3 - row1) / (row2 - row1); //上下显示比例
                //double biliY = Height / Width * biliX;

                HOperatorSet.SetPart(ID, (row3 - bbb * biliY), (col3 - aaa * biliX), (row3 + bbb * (1 - biliY)), (col3 + aaa * (1 - biliX)));
                HOperatorSet.DispObj(img, ID);
            }
            catch (Exception EX)
            {}
        }
예제 #15
0
        private void HWindowControl1_HMouseUp(object sender, HMouseEventArgs e)
        {
            HRegion region = null;

            if (ctrller.ROIList.Count > 0)
            {
                if (ctrller.DefineModelROI())
                {
                    region = ctrller.GetModelRegion();
                }

                if (DrawRegionCtrlFlag > 0 && DrawRegionCtrlFlag <= 4)
                {
                    if (VisionProject.Instance.visionTool.checkStick.CheckRegion[DrawRegionCtrlFlag - 1] != null)
                    {
                        VisionProject.Instance.visionTool.checkStick.CheckRegion[DrawRegionCtrlFlag - 1].Dispose();
                    }
                    VisionProject.Instance.visionTool.checkStick.CheckRegion[DrawRegionCtrlFlag - 1] = region.Clone();
                }
            }

            if (e.Button == MouseButtons.Right)
            {
                hWndCtrller.ResetWindow();
            }

            hWndCtrller.Repaint();
            hWndCtrller.SetViewMode(HWndCtrller.MODE_VIEW_NONE);
        }
예제 #16
0
 private void hWindowControl_HMouseMove(object sender, HMouseEventArgs e)
 {
     hv_MouseRow.Dispose();
     hv_MouseCol.Dispose();
     HOperatorSet.GetMposition(hv_WindowHandle, out hv_MouseRow, out hv_MouseCol, out _);
     if (MoveImage)
     {
         HTuple Row0 = new HTuple(), Column0 = new HTuple();
         HTuple Row00 = new HTuple(), Column00 = new HTuple();
         HTuple hv_dx = new HTuple();
         HTuple hv_dy = new HTuple();
         try
         {
             HOperatorSet.GetPart(hv_WindowHandle, out Row0, out Column0, out Row00, out Column00);
             hv_dy.Dispose(); hv_dx.Dispose();
             hv_dy = hv_MouseRow - hv_MouseDownRow;
             hv_dx = hv_MouseCol - hv_MouseDownCol;
             HOperatorSet.SetPart(hv_WindowHandle, Row0 - hv_dy, Column0 - hv_dx, Row00 - hv_dy, Column00 - hv_dx);
         }
         catch
         {
         }
         finally
         {
             hv_dy.Dispose(); hv_dx.Dispose();
             Row0.Dispose(); Column0.Dispose(); Row00.Dispose(); Column00.Dispose();
         }
     }
     else
     {
         HTuple pointGray = new HTuple();
         try
         {
             if (!ho_Image.IsInitialized())
             {
                 return;
             }
             if (hv_MouseRow > 0 && hv_MouseRow < hv_ImageHeight - 1 && hv_MouseCol > 0 && hv_MouseCol < hv_ImageWidth - 1)
             {
                 pointGray.Dispose();
                 HOperatorSet.GetGrayval(ho_Image, hv_MouseRow, hv_MouseCol, out pointGray);
                 StatusLabel.Text = $"X:{hv_MouseCol}  Y:{hv_MouseRow}  Value:{pointGray}";
             }
             else
             {
                 StatusLabel.Text = $"X:{hv_MouseCol}  Y:{hv_MouseRow}  Value:-";
             }
         }
         catch
         {
         }
         finally
         {
             pointGray.Dispose();
             hv_MouseRow.Dispose();
             hv_MouseCol.Dispose();
             hv_MouseVal.Dispose();
         }
     }
 }
예제 #17
0
 private void hWindowControl1_HMouseMove(object sender, HMouseEventArgs e)
 {
     if (distToClose <= 5)
     {
         ig.moveByHandle(e.X, e.Y);
     }
 }
예제 #18
0
        //This function displays the cursor and the selected region
        private void DisplayRegion(object sender, HMouseEventArgs e)
        {
            //This block draws a cross on the tip of the mouse for visualisation purpose
            HObject temp;

            HOperatorSet.GenContourPolygonXld(out temp, new HTuple(0, (double)hWindowControl.ImagePart.Height), new HTuple(e.X, e.X));
            HGraphics.allObj["green_cursor"] = temp;
            HOperatorSet.GenContourPolygonXld(out temp, new HTuple(e.Y, e.Y), new HTuple(0, hWindowControl.ImagePart.Width));
            HGraphics.allObj["green_cursor"] = HGraphics.allObj["green_cursor"].ConcatObj(temp);

            //Declare variables to store region and the contour of the region
            HObject Contours = new HObject();

            Contours.GenEmptyObj();
            HObject RegionChanged = new HObject();

            RegionChanged.GenEmptyObj();
            for (int i = 0; i < SelectRegionRows.Length; i += 2)
            {
                if (i == SelectRegionRows.Length - 1)
                {
                    HOperatorSet.GenContourPolygonXld(out temp, new HTuple((double)SelectRegionRows[i], e.Y, e.Y, (double)SelectRegionRows[i], (double)SelectRegionRows[i]),
                                                      new HTuple((double)SelectRegionCols[i], (double)SelectRegionCols[i], e.X, e.X, (double)SelectRegionCols[i]));
                }
                else
                {
                    HOperatorSet.GenContourPolygonXld(out temp, new HTuple((double)SelectRegionRows[i], (double)SelectRegionRows[i + 1], (double)SelectRegionRows[i + 1], (double)SelectRegionRows[i], (double)SelectRegionRows[i]),
                                                      new HTuple((double)SelectRegionCols[i], (double)SelectRegionCols[i], (double)SelectRegionCols[i + 1], (double)SelectRegionCols[i + 1], (double)SelectRegionCols[i]));
                }
                HOperatorSet.GenRegionContourXld(temp, out Contours, "margin");
                HOperatorSet.ConcatObj(Contours, RegionChanged, out RegionChanged);
            }
            HGraphics.allObj["colored_region"] = RegionChanged;
            HGraphics.display();
        }
예제 #19
0
 /// <summary>
 /// Usually, image processing tasks may take a long time in terms of responsiveness.
 /// One way to overcome this problem is run the callback in a separate thread,
 /// and run the task only when the user is not interacting with the drawing object.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void halconWindow_HMouseUp(object sender, HMouseEventArgs e)
 {
     if (buttonRun.Enabled)
     {
         createsbm.AddMessage(dummy_msg);
     }
 }
예제 #20
0
        private void hWindowControl1_HMouseMove(object sender, HMouseEventArgs e)
        {
            GetStatus(e);
            if (Image == null)
            {
                return;
            }
            if (MouseButtons == MouseButtons.Left && _WindowOpreate == WindowOperate.Translate)
            {
                int x = (int)e.X;
                int y = (int)e.Y;
                CurrentPoint = new Point(x, y);

                int dx = CurrentPoint.X - MouseDown_Point.X;
                int dy = CurrentPoint.Y - MouseDown_Point.Y;
                if (partRectangle != null)
                {
                    int  row1 = initRectangle.X - dx;
                    int  col1 = initRectangle.Y - dy;
                    Size size = initRectangle.Size;
                    partRectangle             = new Rectangle(new Point(row1, col1), size);
                    hWindowControl1.ImagePart = partRectangle;
                    DisplayAll(true);
                }
            }
        }
        /// <summary>
        /// Performs event handling of the HMouseWheel event of
        /// HWindowControl, so that the dipslayed image  part and scroll bars
        /// of HDisplayControl can be adapted to the current zoom value.
        /// </summary>
        private void viewPort_HMouseWheel(object sender, HMouseEventArgs e)
        {
            hWndControl.mouseWheel(sender, e);
            ManageScrollBars();
            hWndControl.repaint();

            this.Invalidate();
        }
예제 #22
0
 private void GetRegion(object sender, HMouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         SelectRegionRows.Append(e.Y);
         SelectRegionCols.Append(e.X);
     }
 }
        private void HWindowControl1_HMouseUp(object sender, HMouseEventArgs e)
        {
            HRegion region = null;

            if (ctrller.ROIList.Count > 0)
            {
                if (ctrller.DefineModelROI())
                {
                    region = ctrller.GetModelRegion();
                }

                if (DrawRegionCtrlFlag == 1)
                {
                    if (Model.SearchRegion != null)
                    {
                        Model.SearchRegion.Dispose();
                    }
                    Model.SearchRegion = region.Clone();
                }
                else if (DrawRegionCtrlFlag == 2)
                {
                    if (Model.ModelRegion != null)
                    {
                        Model.ModelRegion.Dispose();
                    }
                    Model.ModelRegion = region.Clone();

                    DeterminModel();

                    InspectModel();
                    Model.createNewModelID = true;
                }
                else if (DrawRegionCtrlFlag == 3)
                {
                    if (Model.shapeModel != null && Model.shapeModel.IsInitialized())
                    {
                        ROI rOI = ctrller.GetActiveROI();
                        if (rOI is ROICross)
                        {
                            HTuple data = ((ROICross)rOI).GetModeData();
                            Model.SetModelOrigin(data[0], data[1]);
                            //Model.shapeModel.SetShapeModelOrigin(-Model.ModelImgRow+   data[0],-Model.ModelImgCol+ data[1]);
                        }
                    }
                }

                Model.OutputResult.Reset();
            }


            if (e.Button == MouseButtons.Right)
            {
                hWndCtrller.ResetWindow();
                hWndCtrller.Repaint();
            }

            hWndCtrller.SetViewMode(HWndCtrller.MODE_VIEW_NONE);
        }
예제 #24
0
        private void hWindowControl_HMouseMove(object sender, HMouseEventArgs e)
        {
            HTuple X = new HTuple(), Y = new HTuple(), GrayVal = new HTuple();
            HTuple button = new HTuple();

            //Read mouse position
            this.MousePosRow.Text = "Row: " + Convert.ToInt16(e.Y).ToString();
            this.MousePosCol.Text = "Col: " + Convert.ToInt16(e.X).ToString();
        }
예제 #25
0
        public void hWindow_HMouseUp(object sender, HMouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left && _flag_act ==true)
            {
                //_canMove = false;
                MoveImage();

            }
        }
 private void MouseUpEvent(object sender, HMouseEventArgs eventArgsList)
 {
     if (eventArgsList.Button == MouseButtons.Middle)
     {
         if (clickTrigger == 0)
             resetTimer.Start();
         clickTrigger++;
         Cursor = CursorUsed;
     }
 }
예제 #27
0
 private void OnHMouseUp4(object sender, HMouseEventArgs e)
 {
     MouseClickCnt4++;
     if (MouseClickCnt4 == 2)
     {
         ShowProfileToWindow(null, null, null, null, ShowMsg);
         ShowMsg        = !ShowMsg;
         MouseClickCnt4 = 0;
     }
 }
 private void MouseDownEvent(object sender, HMouseEventArgs eventArgsList)
 {
     if (eventArgsList.Button == MouseButtons.Middle)
     {
         startX = eventArgsList.X;
         startY = eventArgsList.Y;
         CursorUsed = Cursor;
         Cursor = Cursors.NoMove2D;
     }
 }
예제 #29
0
 private void hWindowControl1_HMouseDown(object sender, HMouseEventArgs e)
 {
     if (ctrller.ActiveROIIndex < 0 && rOI == null)
     {
         if (e.Button == MouseButtons.Left)
         {
             hWndCtrller.SetViewMode(HWndCtrller.MODE_VIEW_MOVE);
         }
     }
     rOI = null;
 }
예제 #30
0
 private void ChoosePoint(object sender, HMouseEventArgs e)
 {
     //Display click button
     if (e.Button == MouseButtons.Left)
     {
         DisplayCross(HGraphics, e.Y, e.X);
     }
     else if (e.Button == MouseButtons.Right)
     {
         EndChoosePoint();
     }
 }
예제 #31
0
 protected void ToolwindowMOVE(HMouseEventArgs e)
 {
     if (Toolwindow_MOVE != null)
         Toolwindow_MOVE(this, e);
 }
        /// <summary> 
        /// Performs event handling of the HMouseWheel event of
        /// HWindowControl, so that the dipslayed image  part and scroll bars 
        /// of HDisplayControl can be adapted to the current zoom value.
        /// </summary>
        private void viewPort_HMouseWheel(object sender, HMouseEventArgs e)
        {
            hWndControl.mouseWheel(sender, e);
              ManageScrollBars();
              hWndControl.repaint();

              this.Invalidate();
        }
예제 #33
0
 private void MainWindow_HMouseMove(object sender, HMouseEventArgs e)
 {
     PointBase mousePosition = new PointBase();
     mousePosition.col = (int)e.X;
     mousePosition.row = (int)e.Y;
     MouseX.Text = mousePosition.col.ToString();
     MouseY.Text = mousePosition.row.ToString();
     pixel.Text = Mainpicture_Base.PiexlGrayval(mousePosition).ToString();
 }
예제 #34
0
 private void measure_window_HMouseMove(object sender, HMouseEventArgs e)
 {
     //取得滑鼠在視窗上的位置
     mousePosition.GetMposition(measure_window.HalconWindow);
     //顯示位置
     MouseXY.Text = "Mouse(" + mousePosition.col.ToString() + "," + mousePosition.row.ToString() + ")";
     //顯示滑鼠位置的灰階值
     pixelvalue.Text = "pixelvalue =" + Measure_Image.PiexlGrayval(mousePosition).ToString();
 }
예제 #35
0
        private void Window_HMouseWheel(object sender, HMouseEventArgs e)
        {
            switch (dowhat)
            {
                case (int)choose.cursor:
                    break;

                case (int)choose.move:
                    break;
                case (int)choose.zoom:
                    if (windowImage.GetImage != null)
                    {
                        try
                        {
                            //mousePosition.GetMpositionSubPix(window.HalconWindow);
                            mousePosition.row = e.X;
                            mousePosition.col = e.Y;

                            HOperatorSet.GetPart(window.HalconWindow, out current_beginRow, out current_beginCol, out current_endRow, out current_endCol);
                        }
                        catch (Exception ex)
                        {
                            //m_CtrlHStatusLabelCtrl.Text = ex.Message;
                        }

                        if (e.Delta > 0)// 放大图像
                        {
                            zoom_beginRow = (current_beginRow + (mousePosition.row - current_beginRow) * 0.300d);
                            zoom_beginCol = (current_beginCol + (mousePosition.col - current_beginCol) * 0.300d);
                            zoom_endRow = (current_endRow - (current_endRow - mousePosition.row) * 0.300d);
                            zoom_endCol = (current_endCol - (current_endCol - mousePosition.col) * 0.300d);
                        }
                        else// 缩小图像
                        {
                            zoom_beginRow = (mousePosition.row - (mousePosition.row - current_beginRow) / 0.700d);
                            zoom_beginCol = (mousePosition.col - (mousePosition.col - current_beginCol) / 0.700d);
                            zoom_endRow = (mousePosition.row + (current_endRow - mousePosition.row) / 0.700d);
                            zoom_endCol = (mousePosition.col + (current_endCol - mousePosition.col) / 0.700d);
                        }

                        try
                        {
                            int hw_width, hw_height;
                            hw_width = window.WindowSize.Width;
                            hw_height = window.WindowSize.Height;

                            bool _isOutOfArea = true;
                            bool _isOutOfSize = true;
                            bool _isOutOfPixel = true; //避免像素过大
                            

                            _isOutOfArea = zoom_beginRow >= windowImage.GetHeight || zoom_endRow <= 0 || zoom_beginCol >= windowImage.GetWidth || zoom_endCol < 0;
                            _isOutOfSize = (zoom_endRow - zoom_beginRow) > windowImage.GetHeight * 40 || (zoom_endCol - zoom_beginCol) > windowImage.GetWidth * 40;
                            //_isOutOfPixel = hw_height / (zoom_endRow - zoom_beginRow) > 500 || hw_width / (zoom_endCol - zoom_beginCol) > 500;
                            _isOutOfPixel = (zoom_endRow - zoom_beginRow) < 10 || (zoom_endCol - zoom_beginCol) < 10;

                            if (_isOutOfArea || _isOutOfSize)
                            {
                                //DispImageFit(Window.HalconWindow);
                            }
                            else if (!_isOutOfPixel)
                            {
                                HOperatorSet.ClearWindow(window.HalconWindow);
                                HOperatorSet.SetPaint(window.HalconWindow, new HTuple("default"));//保持图像显示比例
                                HOperatorSet.SetPart(window.HalconWindow, zoom_beginRow, zoom_beginCol, zoom_endRow, zoom_beginCol + (zoom_endRow - zoom_beginRow) * hw_width / hw_height);
                                HOperatorSet.DispObj(windowImage.GetImage, window.HalconWindow);
                            }
                        }
                        catch (Exception ex)
                        {
                            //DispImageFit(Window.HalconWindow);
                            //m_CtrlHStatusLabelCtrl.Text = ex.Message;
                        }
                    }
                    break;
            }
            ToolwindowWHEEL(e);
            DispObject();
        }
예제 #36
0
 private void Window_HMouseUp(object sender, HMouseEventArgs e)
 {
     if (e.Button == MouseButtons.Middle)
         flag = false;
 }
예제 #37
0
 protected void ToolwindowDWON(HMouseEventArgs e)
 {
     if (Toolwindow_DWON != null)
         Toolwindow_DWON(this, e);
 }
예제 #38
0
 private void Window_HMouseDown(object sender, HMouseEventArgs e)
 {
     if(e.Button == MouseButtons.Middle)
         flag = true;
 }
예제 #39
0
        private void Window_HMouseDown(object sender, HMouseEventArgs e)
        {

            switch (dowhat)
            {
                case (int)choose.cursor:
                    break;

                case (int)choose.move:
                    if (e.Button == MouseButtons.Left)
                        move_flag = true;
                    this.Cursor = Cursors.SizeAll;
                    break;
            }
            ToolwindowDWON(e);
            DispObject();
        }
예제 #40
0
 protected void ToolwindowWHEEL(HMouseEventArgs e)
 {
     if (Toolwindow_WHEEL != null)
         Toolwindow_WHEEL(this, e);
 }
예제 #41
0
 protected void ToolwindowUP(HMouseEventArgs e)
 {
     if (Toolwindow_UP != null)
         Toolwindow_UP(this, e);
 }
예제 #42
0
        private void Window_HMouseUp(object sender, HMouseEventArgs e)
        {
            switch (dowhat)
            {
                case (int)choose.cursor:
                    break;

                case (int)choose.move:
                    if (e.Button == MouseButtons.Left)
                        move_flag = false;
                    this.Cursor = Cursors.Arrow;
                    break;
            }

            // 觸發 ToolwindowUP Event
            ToolwindowUP(e);
            DispObject();
        }