示例#1
0
        public clsPart findSelectedPart(Point pt)
        {
            clsPart retPart = null;

            foreach (clsPart pPart in m_PartList)
            {
                if (pPart.isPtInRect(pt))
                {
                    retPart = pPart;
                    break;
                }
            }

            return(retPart);
        }
示例#2
0
        private void ImageDoc_MouseUp(object sender, MouseEventArgs e)
        {
            #region ***** 鼠标弹起操作 *****

            if (e.Button == MouseButtons.Left)
            {
                if (m_iEditType == tagModeType.Mode_Edit)
                {
                    if (m_iViewType == tagViewType.View_Area)
                    {
                        if (m_iToolType == tagToolType.Tool_None)
                        {
                            if (pSelectedPart != null)
                            {
                                pSelectedPart.m_bSelected = false;
                                pSelectedPart             = null;
                            }
                            else
                            {
                                #region 视图中心跟随鼠标移动

                                Point pt = new Point(e.X, e.Y);
                                pt = m_AreaView.VpToLp(pt);
                                m_AreaView.update(base.ClientRectangle, pt);
                                Invalidate();

                                #endregion
                            }
                        }
                        else if (m_iToolType == tagToolType.Tool_Mesure)
                        {
                            //测量模式,图片不移动,不作响应
                        }
                    }
                    else if (m_iViewType == tagViewType.View_Camera)
                    {
                        //do nothing
                    }
                }
            }
            else if (e.Button == MouseButtons.Right)
            {
                if (m_iEditType == tagModeType.Mode_Edit)
                {
                    if (m_iViewType == tagViewType.View_Area)
                    {
                        if (m_iToolType == tagToolType.Tool_Mesure)
                        {
                            #region 测量功能
                            m_iToolType = tagToolType.Tool_None;
                            tspbtnMesureDistance.Checked = false;
                            m_bCapture = false;
                            #endregion
                        }
                        else
                        {
                            tspbtnMesureDistance.Checked = m_iToolType == tagToolType.Tool_Mesure;
                            tspbtnShowGrid.Checked       = m_iShowType == tagShowType.Show_Grid;
                            menuStrip.Show(this, new Point(e.X, e.Y), ToolStripDropDownDirection.BelowRight);
                        }
                    }
                    else if (m_iViewType == tagViewType.View_Camera)
                    {
                        if (m_iToolType == tagToolType.Tool_Mesure)
                        {
                            #region 测量功能
                            m_iToolType = tagToolType.Tool_None;
                            tspbtnMesureDistance.Checked = false;
                            #endregion
                        }
                        else
                        {
                            tspbtnMesureDistance.Checked = m_iToolType == tagToolType.Tool_Mesure;
                            tspbtnShowGrid.Checked       = m_iShowType == tagShowType.Show_Grid;
                            menuStrip.Show(this, new Point(e.X, e.Y), ToolStripDropDownDirection.BelowRight);
                        }
                    }
                }
            }

            #endregion
        }
示例#3
0
        private void ImageDoc_MouseDown(object sender, MouseEventArgs e)
        {
            #region ***** 鼠标按下操作 *****

            Point pt = new Point(e.X, e.Y);

            if (e.Button == MouseButtons.Left)
            {
                if (m_iEditType == tagModeType.Mode_Edit)
                {
                    if (m_iViewType == tagViewType.View_Area)
                    {
                        if (m_iToolType == tagToolType.Tool_None)
                        {
                            Point lpt = m_AreaView.VpToLp(pt);
                            pSelectedPart = clsPCB.m_pPCB.findSelectedPart(lpt);
                            if (pSelectedPart != null)
                            {
                                pSelectedPart.m_bSelected = true;
                                ptStart = ptEnd = pt;
                            }
                        }
                        else if (m_iToolType == tagToolType.Tool_Mesure)
                        {
                            #region 测量功能
                            if (!m_bCapture)
                            {
                                ptStart    = new Point(e.X, e.Y);
                                ptEnd      = new Point(e.X, e.Y);
                                m_bCapture = true;
                            }
                            else
                            {
                                m_bCapture = false;
                                ptEnd.X    = e.X;
                                ptEnd.Y    = e.Y;

                                Point lpStart = m_AreaView.VpToLp(ptStart);
                                Point lpEnd   = m_AreaView.VpToLp(ptEnd);

                                int fDistance  = (int)Math.Sqrt(Math.Pow((lpStart.X - lpEnd.X), 2) + Math.Pow((lpStart.Y - lpEnd.Y), 2));
                                int fxDistance = Math.Abs(lpStart.X - lpEnd.X);
                                int fyDistance = Math.Abs(lpStart.Y - lpEnd.Y);

                                string str = "X:" + fxDistance.ToString() + " um;\n" + "Y:" + fyDistance.ToString() + " um;\n" + "XY:" + fDistance.ToString() + " um;\n";
                                Wells.WellsFramework.WellsMetroMessageBox.Show(null, str, clsWellsLanguage.getString(108), MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            #endregion
                        }
                    }
                    else if (m_iViewType == tagViewType.View_Camera)
                    {
                        if (m_iToolType == tagToolType.Tool_Mesure)
                        {
                            #region 测量功能
                            if (!m_bCapture)
                            {
                                ptStart    = new Point(e.X, e.Y);
                                ptEnd      = new Point(e.X, e.Y);
                                m_bCapture = true;
                            }
                            else
                            {
                                m_bCapture = false;
                                ptEnd.X    = e.X;
                                ptEnd.Y    = e.Y;

                                Point lpStart = m_CameraView.VpToLp(ptStart);
                                Point lpEnd   = m_CameraView.VpToLp(ptEnd);

                                int fDistance  = (int)Math.Sqrt(Math.Pow((lpStart.X - lpEnd.X), 2) + Math.Pow((lpStart.Y - lpEnd.Y), 2));
                                int fxDistance = Math.Abs(lpStart.X - lpEnd.X);
                                int fyDistance = Math.Abs(lpStart.Y - lpEnd.Y);

                                string str = "X:" + fxDistance.ToString() + " um;\n" + "Y:" + fyDistance.ToString() + " um;\n" + "XY:" + fDistance.ToString() + " um;\n";
                                Wells.WellsFramework.WellsMetroMessageBox.Show(null, str, clsWellsLanguage.getString(108), MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            #endregion
                        }
                    }
                }
            }

            #endregion
        }