Esempio n. 1
0
    public void InitializeTrack(Control _obj, int _type, int vh_type, Point _location, int _twidth, MouseEventHandler changeEvent)
    {
        VH_type = vh_type;
        mEvent  = changeEvent;

        /*
         *      m_set[0] = bar left-width;     m_set[1] = bar right-width;
         *      m_set[2] = gress left-width;  m_set[3] = gress middle-width;
         *      m_set[4] = gress location x;  m_set[5] = gress location y;
         *      m_set[6] = block location x;  m_set[7] = block location y;
         */
        switch (_type)
        {
        case 0:
            Bmp_Block = SQK_Ui.TrackBar.TrackResource.trackbar1;
            Bmp_Flag  = SQK_Ui.TrackBar.TrackResource.track1;
            Bmp_Gress = SQK_Ui.TrackBar.TrackResource.trackgress1;
            m_set     = new int[8] {
                1, 1, 1, 1, 1, 0, 0, 0
            };
            if (VH_type == 0)
            {
                maxValue = _twidth - Bmp_Flag.Width + 2;
                minValue = m_set[6];
            }
            else
            if (VH_type == 1)
            {
                maxValue = _twidth - Bmp_Flag.Width + 2;
                minValue = m_set[6];
            }
            break;

        case 1:
            Bmp_Block = SQK_Ui.TrackBar.TrackResource.trackbar2;
            Bmp_Flag  = SQK_Ui.TrackBar.TrackResource.track2;
            Bmp_Gress = SQK_Ui.TrackBar.TrackResource.trackgress2;
            m_set     = new int[8] {
                13, 13, 6, 6, 8, 8, 10, 6
            };
            if (VH_type == 0)
            {
                maxValue = _twidth - Bmp_Flag.Width + 18;
                minValue = m_set[6];
            }
            else
            if (VH_type == 1)
            {
                maxValue = _twidth - Bmp_Flag.Height - 24;
                minValue = m_set[6] - m_set[2] + 4;
            }
            break;

        case 2:
            Bmp_Block = SQK_Ui.TrackBar.TrackResource.trackbar2;
            Bmp_Flag  = SQK_Ui.TrackBar.TrackResource.track3;
            Bmp_Gress = SQK_Ui.TrackBar.TrackResource.trackgress2;
            m_set     = new int[8] {
                13, 13, 6, 6, 8, 8, 10, 0
            };
            if (VH_type == 0)
            {
                maxValue = _twidth - Bmp_Flag.Width + 18;
                minValue = m_set[6];
            }
            else
            if (VH_type == 1)
            {
                maxValue = _twidth - Bmp_Flag.Width + 16;
                minValue = m_set[6] - m_set[2] + 4;
            }
            break;

        case 3:
            Bmp_Block = SQK_Ui.TrackBar.TrackResource.trackbar4;
            Bmp_Flag  = SQK_Ui.TrackBar.TrackResource.track4;
            Bmp_Gress = SQK_Ui.TrackBar.TrackResource.trackgress4;
            m_set     = new int[8] {
                3, 3, 3, 3, 0, 0, 0, 0
            };
            if (VH_type == 0)
            {
                maxValue = _twidth - Bmp_Flag.Width + 7;
                minValue = m_set[6];
            }
            else
            if (VH_type == 1)
            {
                maxValue = _twidth - Bmp_Flag.Width + 6;
                minValue = m_set[6] - 1;
            }
            break;

        case 4:
            Bmp_Block = SQK_Ui.TrackBar.TrackResource.trackbar5;
            Bmp_Flag  = SQK_Ui.TrackBar.TrackResource.track5;
            Bmp_Gress = SQK_Ui.TrackBar.TrackResource.trackgress5;
            m_set     = new int[8] {
                3, 3, 3, 3, 0, 0, 0, 0
            };
            if (VH_type == 0)
            {
                maxValue = _twidth - Bmp_Flag.Width + 6;
                minValue = m_set[6];
            }
            else
            if (VH_type == 1)
            {
                maxValue = _twidth - Bmp_Flag.Width + 6;
                minValue = m_set[6];
            }
            break;

        case 5:
            Bmp_Block = SQK_Ui.TrackBar.TrackResource.trackbar6;
            Bmp_Flag  = SQK_Ui.TrackBar.TrackResource.track6;
            Bmp_Gress = SQK_Ui.TrackBar.TrackResource.trackgress6;
            m_set     = new int[8] {
                3, 3, 3, 3, 0, 0, 0, 0
            };
            if (VH_type == 0)
            {
                maxValue = _twidth - Bmp_Flag.Width + 6;
                minValue = m_set[6];
            }
            else
            if (VH_type == 1)
            {
                maxValue = _twidth - Bmp_Flag.Width + 6;
                minValue = m_set[6];
            }
            break;

        default:
            Bmp_Block = SQK_Ui.TrackBar.TrackResource.trackbar1;
            Bmp_Flag  = SQK_Ui.TrackBar.TrackResource.track1;
            Bmp_Gress = SQK_Ui.TrackBar.TrackResource.trackgress1;
            m_set     = new int[8] {
                1, 1, 1, 1, 1, 0, 0, 0
            };
            if (VH_type == 0)
            {
                maxValue = _twidth - Bmp_Flag.Width + 2;
                minValue = m_set[6];
            }
            else
            if (VH_type == 1)
            {
                maxValue = _twidth - Bmp_Flag.Width + 2;
                minValue = m_set[6];
            }
            break;
        }
        bar_Height   = Bmp_Block.Height;
        gress_Height = Bmp_Gress.Height;
        int _height = bar_Height;

        if (Bmp_Flag.Height > bar_Height)
        {
            _height = Bmp_Flag.Height;
        }
        if (VH_type == 0)
        {
            m_DraggableGDIObjects = new List <UiControlsMethod.ADraggableGDIObject>();
            UiControlsMethod.Draggable draggableBlock = new UiControlsMethod.Draggable(m_set[6], m_set[7], Bmp_Flag);
            m_DraggableGDIObjects.Add(draggableBlock);
        }
        else
        if (VH_type == 1)
        {
            Bmp_Flag.RotateFlip(RotateFlipType.Rotate270FlipNone);
            m_DraggableGDIObjects = new List <UiControlsMethod.ADraggableGDIObject>();
            UiControlsMethod.Draggable draggableBlock = new UiControlsMethod.Draggable(m_set[7], _twidth + m_set[0] + m_set[1] - Bmp_Flag.Height - m_set[6], Bmp_Flag);
            m_DraggableGDIObjects.Add(draggableBlock);
        }
        Bitmap   sep_Left    = Bmp_Block.Clone(new Rectangle(0, 0, m_set[0], bar_Height), System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
        Bitmap   sep_Mid     = Bmp_Block.Clone(new Rectangle(m_set[0], 0, 1, bar_Height), System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
        Bitmap   sep_Right   = Bmp_Block.Clone(new Rectangle(Bmp_Block.Width - m_set[1], 0, m_set[1], bar_Height), System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
        Bitmap   bmp_track   = new Bitmap(m_set[0] + _twidth + m_set[1], bar_Height);
        Graphics bitmapTrack = Graphics.FromImage(bmp_track);

        bitmapTrack.DrawImage(sep_Left, 0, 0, m_set[0], bar_Height);
        for (int i = 0; i < _twidth; i++)
        {
            bitmapTrack.DrawImage(sep_Mid, m_set[0] + i, 0, 1, bar_Height);
        }
        bitmapTrack.DrawImage(sep_Right, m_set[0] + _twidth, 0, m_set[1], bar_Height);
        Bitmap Bmp_BackgroundTmp = bmp_track;

        Bmp_Background = Bmp_BackgroundTmp;
        gress_left     = Bmp_Gress.Clone(new Rectangle(0, 0, m_set[2], gress_Height), System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
        gress_middle   = Bmp_Gress.Clone(new Rectangle(m_set[2], 0, m_set[3], gress_Height), System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
        Graphics bitmapBackground = Graphics.FromImage(Bmp_BackgroundTmp);

        bitmapBackground.DrawImage(gress_left, m_set[4], m_set[5], m_set[2], gress_Height);
        bitmapBackground.DrawImage(gress_middle, m_set[2] + m_set[4], m_set[5], m_set[3], gress_Height);
        _track.BackColor             = Color.Transparent;
        _track.Location              = _location;
        _track.BackgroundImageLayout = ImageLayout.Center;
        if (VH_type == 0)
        {
            _track.Size            = new Size(_twidth + m_set[0] + m_set[1], _height);
            _track.BackgroundImage = Bmp_BackgroundTmp;
        }
        else
        if (VH_type == 1)
        {
            Bmp_BackgroundTmp.RotateFlip(RotateFlipType.Rotate270FlipNone);
            gress_middle.RotateFlip(RotateFlipType.Rotate270FlipNone);
            _track.Size            = new Size(_height, _twidth + m_set[0] + m_set[1]);
            _track.BackgroundImage = Bmp_BackgroundTmp;
        }
        _track.Paint     += new PaintEventHandler(_Paint);
        _track.MouseDown += new MouseEventHandler(_MouseDown);
        _track.MouseUp   += new MouseEventHandler(_MouseUp);
        _track.MouseMove += new MouseEventHandler(_MouseMove);
        _obj.Controls.Add(_track);
    }
Esempio n. 2
0
    private void CoustomScroll(
        Control _formObj,
        Point _Location,
        Size _Size,
        Image backimage,
        BorderStyle borderStyle,
        Control _Obj,
        int scrollWidth,
        Image ScrollBox_BackImg,
        ImageLayout ScrollBox_BackImgLayout,
        Image UpArrowImg,
        Image DownArrowImg,
        Image ScrollBox_MoveImg,
        int ScrollBox_MoveWidth,
        int ScrollBox_MoveHeight,
        int BeginSetX,
        int BeginSetY
        )
    {
        ObjectControl = _Obj;
        blockBmp      = new Bitmap(ScrollBox_MoveImg.Width, ScrollBox_MoveImg.Height);
        blockBmp      = (Bitmap)ScrollBox_MoveImg;

        scrollPanelBox                 = new UiControlsMethod.PanelEx();
        scrollPanelBox.Location        = _Location;
        scrollPanelBox.Size            = _Size;
        scrollPanelBox.BackgroundImage = backimage;
        scrollPanelBox.BorderStyle     = borderStyle;
        if (backimage == null)
        {
            scrollPanelBox.BackColor = Color.Transparent;
        }
        else
        {
            scrollPanelBox.BackgroundImage = backimage;
        }

        UiControlsMethod.PanelEx placement_Panel = new UiControlsMethod.PanelEx();
        placement_Panel.BackColor = Color.Transparent;
        placement_Panel.Dock      = DockStyle.Right;
        placement_Panel.Width     = scrollWidth;
        placement_Panel.Location  = new Point(scrollPanelBox.Location.X + scrollPanelBox.Width, scrollPanelBox.Location.Y);
        placement_Panel.Height    = scrollPanelBox.Height;

        ScrollBox_Height = placement_Panel.Height;
        UiControlsMethod.PanelEx UpArrow = new UiControlsMethod.PanelEx();
        UpArrow.Size            = UpArrowImg.Size;
        UpArrow.BackgroundImage = UpArrowImg;
        UpArrow.Dock            = DockStyle.Top;
        UpArrow.Click          += new EventHandler(UpArrow_Click);
        placement_Panel.Controls.Add(UpArrow);
        UiControlsMethod.PanelEx DownArrow = new UiControlsMethod.PanelEx();
        DownArrow.Size            = DownArrowImg.Size;
        DownArrow.BackgroundImage = DownArrowImg;
        DownArrow.Dock            = DockStyle.Bottom;
        DownArrow.Click          += new EventHandler(DownArrow_Click);
        placement_Panel.Controls.Add(DownArrow);

        ScrollBox_                       = new UiControlsMethod.PanelEx();
        ScrollBox_.Size                  = new Size(ScrollBox_MoveWidth, placement_Panel.Height - UpArrow.Height - DownArrow.Height);
        ScrollBox_.Location              = new Point(0, UpArrow.Height);
        ScrollBox_.BackgroundImage       = ScrollBox_BackImg;
        ScrollBox_.BackgroundImageLayout = ScrollBox_BackImgLayout;
        ScrollBox_.BackColor             = Color.Transparent;
        ScrollBox_.Paint                += new PaintEventHandler(ScrollBox_Paint);
        ScrollBox_.MouseDown            += new MouseEventHandler(ScrollBox_MouseDown);
        ScrollBox_.MouseUp              += new MouseEventHandler(ScrollBox_MouseUp);
        ScrollBox_.MouseMove            += new MouseEventHandler(ScrollBox_MouseMove);

        placement_Panel.Controls.Add(ScrollBox_);
        m_DraggableGDIObjects = new List <UiControlsMethod.ADraggableGDIObject>();
        UiControlsMethod.Draggable draggableBlock = new UiControlsMethod.Draggable(0, 0, blockBmp);
        m_DraggableGDIObjects.Add(draggableBlock);
        setX  = BeginSetX;
        limtY = placement_Panel.Height - blockBmp.Height - DownArrow.Height - UpArrow.Height;
        scrollPanelBox.MouseWheel += new MouseEventHandler(OnMouseWheel);
        scrollPanelBox.Controls.Add(placement_Panel);
        _formObj.Controls.Add(scrollPanelBox);

        ObjectControl.Location = new Point(0, 0);
        ObjectControl.AutoSize = true;
        ObjectControl.Parent   = scrollPanelBox;
        scrollPanelBox.Controls.Add(ObjectControl);

        controlReflash = new Thread(_controlreflash);
        controlReflash.Start();
    }