protected internal virtual void OnPaintScrollBarThumb(TCEventArgs.PaintScrollBarThumbEventArgs e) { if (e.Enabled) { Graphics graphics = e.Graphics; Rectangle thumbRectangle = e.ThumbRectangle; ControlState controlState = e.ControlState; Color backNormal = this.BackNormal; Color begin = this.Base; Color border = this.Border; Color innerBorder = this.InnerBorder; bool changeColor = false; switch (controlState) { case ControlState.Hover: begin = this.BackHover; break; case ControlState.Pressed: begin = this.BackPressed; changeColor = true; break; default: begin = this.Base; break; } using (new SmoothingModeGraphics(graphics)) { ControlPaintEx.DrawScrollBarThumb(graphics, thumbRectangle, begin, backNormal, border, innerBorder, e.Orientation, changeColor); } } }
private void DrawScrollBar(IntPtr maskHWnd, Rectangle bounds, Rectangle trackRect, Rectangle topLeftArrowRect, Rectangle bottomRightArrowRect, Rectangle thumbRect, ControlState topLeftArrowState, ControlState bottomRightArrowState, ControlState thumbState, Orientation direction) { bool flag = direction == Orientation.Horizontal; bool enabled = this._owner.Enabled; IScrollBarPaint paint = this._owner as IScrollBarPaint; if (paint != null) { ImageDc dc = new ImageDc(bounds.Width, bounds.Height); IntPtr dC = Win32.NativeMethods.GetDC(maskHWnd); try { using (Graphics graphics = Graphics.FromHdc(dc.Hdc)) { using (TCEventArgs.PaintScrollBarTrackEventArgs args = new TCEventArgs.PaintScrollBarTrackEventArgs(graphics, trackRect, direction, enabled)) { paint.OnPaintScrollBarTrack(args); } ArrowDirection arrowDirection = flag ? ArrowDirection.Left : ArrowDirection.Up; using (TCEventArgs.PaintScrollBarArrowEventArgs args2 = new TCEventArgs.PaintScrollBarArrowEventArgs(graphics, topLeftArrowRect, topLeftArrowState, arrowDirection, direction, enabled)) { paint.OnPaintScrollBarArrow(args2); } arrowDirection = flag ? ArrowDirection.Right : ArrowDirection.Down; using (TCEventArgs.PaintScrollBarArrowEventArgs args3 = new TCEventArgs.PaintScrollBarArrowEventArgs(graphics, bottomRightArrowRect, bottomRightArrowState, arrowDirection, direction, enabled)) { paint.OnPaintScrollBarArrow(args3); } using (TCEventArgs.PaintScrollBarThumbEventArgs args4 = new TCEventArgs.PaintScrollBarThumbEventArgs(graphics, thumbRect, thumbState, direction, enabled)) { paint.OnPaintScrollBarThumb(args4); } } Win32.NativeMethods.BitBlt(dC, 0, 0, bounds.Width, bounds.Height, dc.Hdc, 0, 0, 0xcc0020); } finally { Win32.NativeMethods.ReleaseDC(maskHWnd, dC); dc.Dispose(); } } }
private void DrawScrollBar(IntPtr maskHWnd, Rectangle bounds, Rectangle trackRect, Rectangle topLeftArrowRect, Rectangle bottomRightArrowRect, Rectangle thumbRect, ControlState topLeftArrowState, ControlState bottomRightArrowState, ControlState thumbState, Orientation direction) { bool flag = direction == Orientation.Horizontal; bool enabled = this._owner.Enabled; IScrollBarPaint paint = this._owner as IScrollBarPaint; if (paint != null) { ImageDc dc = new ImageDc(bounds.Width, bounds.Height); IntPtr dC = Win32.NativeMethods.GetDC(maskHWnd); try { using (Graphics graphics = Graphics.FromHdc(dc.Hdc)) { using (TCEventArgs.PaintScrollBarTrackEventArgs args = new TCEventArgs.PaintScrollBarTrackEventArgs(graphics, trackRect, direction, enabled)) { paint.OnPaintScrollBarTrack(args); } ArrowDirection arrowDirection = flag ? ArrowDirection.Left : ArrowDirection.Up; using (TCEventArgs.PaintScrollBarArrowEventArgs args2 = new TCEventArgs.PaintScrollBarArrowEventArgs(graphics, topLeftArrowRect, topLeftArrowState, arrowDirection, direction, enabled)) { paint.OnPaintScrollBarArrow(args2); } arrowDirection = flag ? ArrowDirection.Right : ArrowDirection.Down; using (TCEventArgs.PaintScrollBarArrowEventArgs args3 = new TCEventArgs.PaintScrollBarArrowEventArgs(graphics, bottomRightArrowRect, bottomRightArrowState, arrowDirection, direction, enabled)) { paint.OnPaintScrollBarArrow(args3); } using (TCEventArgs.PaintScrollBarThumbEventArgs args4 = new TCEventArgs.PaintScrollBarThumbEventArgs(graphics, thumbRect, thumbState, direction, enabled)) { paint.OnPaintScrollBarThumb(args4); } } Win32.NativeMethods.BitBlt(dC, 0, 0, bounds.Width, bounds.Height, dc.Hdc, 0, 0, 0xcc0020); } finally { Win32.NativeMethods.ReleaseDC(maskHWnd, dC); dc.Dispose(); } } }
void IScrollBarPaint.OnPaintScrollBarThumb(TCEventArgs.PaintScrollBarThumbEventArgs e) { this.OnPaintScrollBarThumb(e); }