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); }
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(); }