示例#1
0
        private void RenderPlus(Graphics g, Rectangle area, SubjectBase subject)
        {
            Rectangle sr = new Rectangle(area.Left - (int)(10 * SubjectBase.zoomValue), area.Top - (int)(10 * SubjectBase.zoomValue), area.Width + (int)(20 * SubjectBase.zoomValue), area.Height + (int)(20 * SubjectBase.zoomValue));
            g.Clip = new Region(sr);

            Pen penPlus = new Pen(new SolidBrush(Color.White), 2.0f);
            int[] plus = subject.GetPlusVisible();

            if (plus[0] == 1)
            {
                //�������Plus
                Rectangle pmLeft = new Rectangle(area.Left - (int)(8 * SubjectBase.zoomValue), area.Top + area.Height / 2 - (int)(10 * SubjectBase.zoomValue), (int)(40 * SubjectBase.zoomValue), (int)(20 * SubjectBase.zoomValue));
                subject.RectPlusLeft = new Rectangle(pmLeft.Left, pmLeft.Top, (int)(10 * SubjectBase.zoomValue), pmLeft.Height);
                g.Clip = new Region(subject.RectPlusLeft);  //��ֹ�����߽�
                RenderPlusLeft(g, pmLeft, penPlus, selectPlus == 1 ? Color.LightSteelBlue : Color.SteelBlue);
            }
            if (plus[2] == 1)
            {
                //�����ұ߱�Plus
                Rectangle pmRight = new Rectangle(area.Left + area.Width - (int)(((40 - 8) + 1) * SubjectBase.zoomValue), area.Top + area.Height / 2 - (int)(10 * SubjectBase.zoomValue), (int)(40 * SubjectBase.zoomValue), (int)(20 * SubjectBase.zoomValue));
                subject.RectPlusRight = new Rectangle(pmRight.Right - (int)(10 * SubjectBase.zoomValue), pmRight.Top, (int)(10 * SubjectBase.zoomValue), pmRight.Height);
                g.Clip = new Region(subject.RectPlusRight);  //��ֹ�����߽�
                RenderPlusRight(g, pmRight, penPlus, selectPlus == 3 ? Color.LightSteelBlue : Color.SteelBlue);
            }
            if (plus[1] == 1)
            {
                //�����ϱ�Plus

                Rectangle pmTop = new Rectangle(area.Left + area.Width / 2 - (int)(10 * SubjectBase.zoomValue), area.Top - (int)(8 * SubjectBase.zoomValue), (int)(20 * SubjectBase.zoomValue), (int)(40 * SubjectBase.zoomValue));
                subject.RectPlusTop = new Rectangle(pmTop.Left, pmTop.Top, pmTop.Width, (int)(7 * SubjectBase.zoomValue));

                g.Clip = new Region(subject.RectPlusTop);  //��ֹ�����߽�
                RenderPlusTop(g, pmTop, penPlus, selectPlus == 2 ? Color.LightSteelBlue : Color.SteelBlue);
            }
            if (plus[3] == 1)
            {
                //�����±�Plus
                Rectangle pmBottom = new Rectangle(area.Left + area.Width / 2 - (int)(10 * SubjectBase.zoomValue), area.Top + area.Height - (int)(((40 - 8) + 1) * SubjectBase.zoomValue), (int)(20 * SubjectBase.zoomValue), (int)(40 * SubjectBase.zoomValue));
                subject.RectPlusBottom = new Rectangle(pmBottom.Left, pmBottom.Bottom - (int)(7 * SubjectBase.zoomValue), pmBottom.Width, (int)(7 * SubjectBase.zoomValue));

                g.Clip = new Region(subject.RectPlusBottom);  //��ֹ�����߽�
                RenderPlusBottom(g, pmBottom, penPlus, selectPlus == 4 ? Color.LightSteelBlue : Color.SteelBlue);
            }

            g.Clip = new Region(sr);
        }