protected override void DoPaint(HCStyle aStyle, RECT aDrawRect, int aDataDrawTop, int aDataDrawBottom, int aDataScreenTop, int aDataScreenBottom, HCCanvas aCanvas, PaintInfo aPaintInfo) { base.DoPaint(aStyle, aDrawRect, aDataDrawTop, aDataDrawBottom, aDataScreenTop, aDataScreenBottom, aCanvas, aPaintInfo); RECT vBoxRect = GetBoxRect(); HC.OffsetRect(ref vBoxRect, aDrawRect.Left, aDrawRect.Top); if (aPaintInfo.Print) { if (FChecked) { HC.HCDrawFrameControl(aCanvas, vBoxRect, HCControlState.hcsChecked, HCControlStyle.hcyCheck); } else { HC.HCDrawFrameControl(aCanvas, vBoxRect, HCControlState.hcsCustom, HCControlStyle.hcyCheck); } } else { if (this.IsSelectComplate) { aCanvas.Brush.Color = aStyle.SelColor; aCanvas.FillRect(aDrawRect); } else if (FMouseIn) { aCanvas.Brush.Color = HC.clBtnFace; aCanvas.FillRect(aDrawRect); } if (FChecked) { aCanvas.Brush.Style = HCBrushStyle.bsSolid; User.DrawFrameControl(aCanvas.Handle, ref vBoxRect, Kernel.DFC_MENU, Kernel.DFCS_CHECKED | Kernel.DFCS_MENUCHECK); } HC.HCDrawFrameControl(aCanvas, vBoxRect, HCControlState.hcsCustom, HCControlStyle.hcyCheck); } aCanvas.Brush.Style = HCBrushStyle.bsClear; aStyle.TextStyles[TextStyleNo].ApplyStyle(aCanvas, aPaintInfo.ScaleY / aPaintInfo.Zoom); if (FBoxRight) { aCanvas.TextOut(aDrawRect.Left, aDrawRect.Top + (Height - aCanvas.TextHeight("H")) / 2, FText); } else { aCanvas.TextOut(aDrawRect.Left + FPaddingLeft + CheckBoxSize + FPaddingLeft, aDrawRect.Top + (Height - aCanvas.TextHeight("H")) / 2, FText); } }
protected override void DoPaint(HCStyle aStyle, RECT aDrawRect, int aDataDrawTop, int aDataDrawBottom, int aDataScreenTop, int aDataScreenBottom, HCCanvas aCanvas, PaintInfo aPaintInfo) { if (this.Active && (!aPaintInfo.Print)) { aCanvas.Brush.Color = HC.clBtnFace; aCanvas.FillRect(aDrawRect); } if (!aPaintInfo.Print) { RECT vFocusRect = new RECT(); if (FActiveArea != ExpressArea.ceaNone) { if (FActiveArea == ExpressArea.ceaTop) { vFocusRect = FSupRect; } else if (FActiveArea == ExpressArea.ceaBottom) { vFocusRect = FSubRect; } vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Pen.Color = Color.Blue; aCanvas.Rectangle(vFocusRect); } if ((FMouseMoveArea != ExpressArea.ceaNone) && (FMouseMoveArea != FActiveArea)) { if (FMouseMoveArea == ExpressArea.ceaTop) { vFocusRect = FSupRect; } else if (FMouseMoveArea == ExpressArea.ceaBottom) { vFocusRect = FSubRect; } vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Pen.Color = HC.clMedGray; aCanvas.Rectangle(vFocusRect); } } ApplySupSubStyle(aStyle.TextStyles[TextStyleNo], aCanvas, aPaintInfo.ScaleY / aPaintInfo.Zoom); aCanvas.TextOut(aDrawRect.Left + FSupRect.Left, aDrawRect.Top + FSupRect.Top, FSupText); aCanvas.TextOut(aDrawRect.Left + FSubRect.Left, aDrawRect.Top + FSubRect.Top, FSubText); }
protected override void DoPaint(HCStyle aStyle, RECT aDrawRect, int aDataDrawTop, int aDataDrawBottom, int aDataScreenTop, int aDataScreenBottom, HCCanvas aCanvas, PaintInfo aPaintInfo) { base.DoPaint(aStyle, aDrawRect, aDataDrawTop, aDataDrawBottom, aDataScreenTop, aDataScreenBottom, aCanvas, aPaintInfo); if (this.IsSelectComplate) { aCanvas.Brush.Color = aStyle.SelColor; } else if (FDown) { aCanvas.Brush.Color = HC.clHighlight; } else if (FMouseIn) { aCanvas.Brush.Color = HC.clBtnFace; } else { aCanvas.Brush.Color = HC.clMedGray; } aCanvas.FillRect(aDrawRect); aCanvas.Brush.Style = HCBrushStyle.bsClear; aStyle.TextStyles[TextStyleNo].ApplyStyle(aCanvas, aPaintInfo.ScaleY / aPaintInfo.Zoom); SIZE vSize = aCanvas.TextExtent(FText); aCanvas.TextOut(aDrawRect.Left + (aDrawRect.Width - vSize.cx) / 2, aDrawRect.Top + (aDrawRect.Height - vSize.cy) / 2, FText); }
protected override void DoPaint(HCStyle aStyle, RECT aDrawRect, int aDataDrawTop, int aDataDrawBottom, int aDataScreenTop, int aDataScreenBottom, HCCanvas aCanvas, PaintInfo aPaintInfo) { base.DoPaint(aStyle, aDrawRect, aDataDrawTop, aDataDrawBottom, aDataScreenTop, aDataScreenBottom, aCanvas, aPaintInfo); if (FMouseIn) { aCanvas.Brush.Color = HC.clBtnFace; aCanvas.FillRect(aDrawRect); } aStyle.TextStyles[TextStyleNo].ApplyStyle(aCanvas, aPaintInfo.ScaleY / aPaintInfo.Zoom); POINT vPoint = new POINT(); RECT vItemRect = new RECT(); for (int i = 0; i <= FItems.Count - 1; i++) { vPoint.X = FItems[i].Position.X; vPoint.Y = FItems[i].Position.Y; vPoint.Offset(aDrawRect.Left, aDrawRect.Top); vItemRect = HC.Bounds(vPoint.X, vPoint.Y, RadioButtonWidth, RadioButtonWidth); if (FItems[i].Checked) { User.DrawFrameControl(aCanvas.Handle, ref vItemRect, Kernel.DFC_BUTTON, Kernel.DFCS_CHECKED | Kernel.DFCS_BUTTONRADIO); } else { User.DrawFrameControl(aCanvas.Handle, ref vItemRect, Kernel.DFC_BUTTON, Kernel.DFCS_BUTTONRADIO); } aCanvas.TextOut(vPoint.X + RadioButtonWidth, vPoint.Y, FItems[i].Text); } }
protected override void DoPaint(HCStyle aStyle, RECT aDrawRect, int aDataDrawTop, int aDataDrawBottom, int aDataScreenTop, int aDataScreenBottom, HCCanvas aCanvas, PaintInfo aPaintInfo) { base.DoPaint(aStyle, aDrawRect, aDataDrawTop, aDataDrawBottom, aDataScreenTop, aDataScreenBottom, aCanvas, aPaintInfo); if (this.IsSelectComplate && (!aPaintInfo.Print)) { aCanvas.Brush.Color = aStyle.SelColor; aCanvas.FillRect(aDrawRect); } aStyle.TextStyles[TextStyleNo].ApplyStyle(aCanvas, aPaintInfo.ScaleY / aPaintInfo.Zoom); if (!this.AutoSize) { aCanvas.TextRect(aDrawRect, aDrawRect.Left + FMargin, aDrawRect.Top + FMargin, FText); } else { aCanvas.TextOut(aDrawRect.Left + FMargin, aDrawRect.Top + FMargin, FText); } if (FMouseIn && (!aPaintInfo.Print)) { aCanvas.Pen.Color = Color.Blue; } else // 鼠标不在其中或打印 { aCanvas.Pen.Color = Color.Black; } aCanvas.Pen.Width = FBorderWidth; if (FBorderSides.Contains((byte)BorderSide.cbsLeft)) { aCanvas.MoveTo(aDrawRect.Left, aDrawRect.Top); aCanvas.LineTo(aDrawRect.Left, aDrawRect.Bottom); } if (FBorderSides.Contains((byte)BorderSide.cbsTop)) { aCanvas.MoveTo(aDrawRect.Left, aDrawRect.Top); aCanvas.LineTo(aDrawRect.Right, aDrawRect.Top); } if (FBorderSides.Contains((byte)BorderSide.cbsRight)) { aCanvas.MoveTo(aDrawRect.Right, aDrawRect.Top); aCanvas.LineTo(aDrawRect.Right, aDrawRect.Bottom); } if (FBorderSides.Contains((byte)BorderSide.cbsBottom)) { aCanvas.MoveTo(aDrawRect.Left, aDrawRect.Bottom); aCanvas.LineTo(aDrawRect.Right, aDrawRect.Bottom); } }
protected override void DoPaint(HCStyle aStyle, RECT aDrawRect, int aDataDrawTop, int aDataDrawBottom, int aDataScreenTop, int aDataScreenBottom, HCCanvas aCanvas, PaintInfo aPaintInfo) { base.DoPaint(aStyle, aDrawRect, aDataDrawTop, aDataDrawBottom, aDataScreenTop, aDataScreenBottom, aCanvas, aPaintInfo); if ((FMouseIn) && (!aPaintInfo.Print)) { aCanvas.Brush.Color = HC.clBtnFace; aCanvas.FillRect(aDrawRect); } RECT vBoxRect = GetBoxRect(); HC.OffsetRect(ref vBoxRect, aDrawRect.Left, aDrawRect.Top); if (this.IsSelectComplate && (!aPaintInfo.Print)) { aCanvas.Brush.Color = aStyle.SelColor; aCanvas.FillRect(aDrawRect); } aCanvas.Brush.Style = HCBrushStyle.bsClear; aStyle.TextStyles[TextStyleNo].ApplyStyle(aCanvas, aPaintInfo.ScaleY / aPaintInfo.Zoom); aCanvas.TextOut(aDrawRect.Left + FMargin + CheckBoxSize + FMargin, aDrawRect.Top + (Height - aCanvas.TextHeight("H")) / 2, FText); if (FChecked) // 勾选 { User.DrawFrameControl(aCanvas.Handle, ref vBoxRect, Kernel.DFC_MENU, Kernel.DFCS_CHECKED | Kernel.DFCS_MENUCHECK); } aCanvas.Pen.Style = HCPenStyle.psSolid; if (FMouseIn && (!aPaintInfo.Print)) // 鼠标在其中,且非打印 { aCanvas.Pen.Color = Color.Blue; aCanvas.Rectangle(vBoxRect.Left, vBoxRect.Top, vBoxRect.Right, vBoxRect.Bottom); HC.InflateRect(ref vBoxRect, 1, 1); aCanvas.Pen.Color = HC.clBtnFace; aCanvas.Rectangle(vBoxRect.Left, vBoxRect.Top, vBoxRect.Right, vBoxRect.Bottom); } else // 鼠标不在其中或打印 { aCanvas.Pen.Color = Color.Black; aCanvas.Rectangle(vBoxRect.Left, vBoxRect.Top, vBoxRect.Right, vBoxRect.Bottom); } }
protected override void DoPaint(HCStyle AStyle, RECT ADrawRect, int ADataDrawTop, int ADataDrawBottom, int ADataScreenTop, int ADataScreenBottom, HCCanvas ACanvas, PaintInfo APaintInfo) { base.DoPaint(AStyle, ADrawRect, ADataDrawTop, ADataDrawBottom, ADataScreenTop, ADataScreenBottom, ACanvas, APaintInfo); if ((FMouseIn) && (!APaintInfo.Print)) { ACanvas.Brush.Color = HC.clBtnFace; ACanvas.FillRect(ADrawRect); } RECT vBoxRect = GetBoxRect(); HC.OffsetRect(ref vBoxRect, ADrawRect.Left, ADrawRect.Top); if (this.IsSelectComplate && (!APaintInfo.Print)) { ACanvas.Brush.Color = AStyle.SelColor; ACanvas.FillRect(ADrawRect); } AStyle.TextStyles[TextStyleNo].ApplyStyle(ACanvas, APaintInfo.ScaleY / APaintInfo.Zoom); ACanvas.TextOut(ADrawRect.Left + FMargin + CheckBoxSize + FMargin, ADrawRect.Top + (Height - ACanvas.TextHeight("H")) / 2, FText); if (FChecked) // 勾选 { User.DrawFrameControl(ACanvas.Handle, ref vBoxRect, Kernel.DFC_MENU, Kernel.DFCS_CHECKED | Kernel.DFCS_MENUCHECK); } if (FMouseIn && (!APaintInfo.Print)) // 鼠标在其中,且非打印 { ACanvas.Pen.Color = Color.Blue; ACanvas.Rectangle(vBoxRect.Left, vBoxRect.Top, vBoxRect.Right, vBoxRect.Bottom); HC.InflateRect(ref vBoxRect, 1, 1); ACanvas.Pen.Color = HC.clBtnFace; ACanvas.Rectangle(vBoxRect.Left, vBoxRect.Top, vBoxRect.Right, vBoxRect.Bottom); } else // 鼠标不在其中或打印 { ACanvas.Pen.Color = Color.Black; ACanvas.Rectangle(vBoxRect.Left, vBoxRect.Top, vBoxRect.Right, vBoxRect.Bottom); } }
private void DoPopupFormPaint(HCCanvas ACanvas, RECT AClientRect) { ACanvas.Brush.Color = HC.clInfoBk; ACanvas.FillRect(GetItemRect()); // AClientRect ACanvas.Font.Size = DROPDOWNFONTSIZE; // 10号字,高14 int vStartIndex = 0, vEndIndex = 0; GetDisplayRange(AClientRect, ref vStartIndex, ref vEndIndex); int vTop = 0; if (ScrollBarVisible()) { vTop = vStartIndex * DROPDOWNITEMHEIGHT - FScrollBar.Position; } for (int i = vStartIndex; i <= vEndIndex; i++) { if (i == FMoveItemIndex) { ACanvas.Brush.Color = HC.clHighlight; ACanvas.FillRect(HC.Bounds(0, vTop, Width, DROPDOWNITEMHEIGHT)); } else { ACanvas.Brush.Color = HC.clInfoBk; } ACanvas.TextOut(2, vTop + 2, FItems[i]); vTop = vTop + DROPDOWNITEMHEIGHT; } if (ScrollBarVisible()) { POINT vPt = new POINT(); GDI.GetWindowOrgEx(ACanvas.Handle, ref vPt); GDI.SetWindowOrgEx(ACanvas.Handle, vPt.X - (Width - FScrollBar.Width), vPt.Y, ref vPt /*null*/); //User.MoveWindowOrg(ACanvas.Handle, Width - FScrollBar.Width, 0); GDI.IntersectClipRect(ACanvas.Handle, 0, 0, FScrollBar.Width, FScrollBar.Height); // 创建新的剪切区域,该区域是当前剪切区域和一个特定矩形的交集 FScrollBar.PaintToEx(ACanvas); } }
public override void PaintTop(HCCanvas aCanvas) { base.PaintTop(aCanvas); if (FResizing) { aCanvas.Brush.Style = HCBrushStyle.bsClear; aCanvas.Rectangle(FResizeRect); aCanvas.Brush.Color = Color.White; aCanvas.Font.BeginUpdate(); try { aCanvas.Font.Color = Color.Black; aCanvas.Font.FontStyles.Value = 0; } finally { aCanvas.Font.EndUpdate(); } aCanvas.TextOut(FResizeRect.Left + 2, FResizeRect.Top + 2, FResizeWidth.ToString() + " x " + FResizeHeight.ToString()); } }
protected void DoSectionPaintFooterAfter(object sender, int pageIndex, RECT rect, HCCanvas canvas, SectionPaintInfo paintInfo) { HCSection vSection = sender as HCSection; if (vSection.PageNoVisible) { int vSectionIndex = FSections.IndexOf(vSection); int vSectionStartPageIndex = 0; int vAllPageCount = 0; for (int i = 0; i <= FSections.Count - 1; i++) { if (i == vSectionIndex) { vSectionStartPageIndex = vAllPageCount; } vAllPageCount = vAllPageCount + FSections[i].PageCount; } string vS = string.Format(vSection.PageNoFormat, vSectionStartPageIndex + vSection.PageNoFrom + pageIndex, vAllPageCount); canvas.Brush.Style = HCBrushStyle.bsClear; canvas.Font.BeginUpdate(); try { canvas.Font.Size = 10; canvas.Font.Family = "宋体"; } finally { canvas.Font.EndUpdate(); } canvas.TextOut(rect.Left + (rect.Width - canvas.TextWidth(vS)) / 2, rect.Top + vSection.Footer.Height, vS); } }
protected override void DoPaint(HCStyle aStyle, RECT aDrawRect, int aDataDrawTop, int aDataDrawBottom, int aDataScreenTop, int aDataScreenBottom, HCCanvas aCanvas, PaintInfo aPaintInfo) { base.DoPaint(aStyle, aDrawRect, aDataDrawTop, aDataDrawBottom, aDataScreenTop, aDataScreenBottom, aCanvas, aPaintInfo); if (!aPaintInfo.Print) { if (FReadOnly) { aCanvas.Brush.Color = HC.clBtnFace; aCanvas.FillRect(aDrawRect); } else if (this.IsSelectComplate) { aCanvas.Brush.Color = aStyle.SelColor; aCanvas.FillRect(aDrawRect); } if (SelectTextExists()) { aCanvas.Brush.Color = aStyle.SelColor; int vLeft = GetCharDrawLeft(FCaretOffset); int vRight = GetCharDrawLeft(FSelEnd); vLeft = Math.Max(0, Math.Min(vLeft, Width)); vRight = Math.Max(0, Math.Min(vRight, Width)); aCanvas.FillRect(new RECT(aDrawRect.Left + vLeft, aDrawRect.Top, aDrawRect.Left + vRight, aDrawRect.Bottom)); } } aStyle.TextStyles[TextStyleNo].ApplyStyle(aCanvas, aPaintInfo.ScaleY / aPaintInfo.Zoom); if (!this.AutoSize) { aCanvas.TextRect(aDrawRect, aDrawRect.Left + FPaddingLeft - FLeftOffset, aDrawRect.Top + FPaddingTop, FText); } else { aCanvas.TextOut(aDrawRect.Left + FPaddingLeft, aDrawRect.Top + FPaddingTop, FText); } if (aPaintInfo.Print && FPrintOnlyText) { return; } if (FBorderSides.Value > 0) { if (FMouseIn || Active) { aCanvas.Pen.Color = Color.Blue; } else // 鼠标不在其中或打印 { aCanvas.Pen.Color = Color.Black; } aCanvas.Pen.Width = FBorderWidth; aCanvas.Pen.Style = HCPenStyle.psSolid; if (FBorderSides.Contains((byte)BorderSide.cbsLeft)) { aCanvas.MoveTo(aDrawRect.Left, aDrawRect.Top); aCanvas.LineTo(aDrawRect.Left, aDrawRect.Bottom); } if (FBorderSides.Contains((byte)BorderSide.cbsTop)) { aCanvas.MoveTo(aDrawRect.Left, aDrawRect.Top); aCanvas.LineTo(aDrawRect.Right, aDrawRect.Top); } if (FBorderSides.Contains((byte)BorderSide.cbsRight)) { aCanvas.MoveTo(aDrawRect.Right - 1, aDrawRect.Top); aCanvas.LineTo(aDrawRect.Right - 1, aDrawRect.Bottom); } if (FBorderSides.Contains((byte)BorderSide.cbsBottom)) { aCanvas.MoveTo(aDrawRect.Left, aDrawRect.Bottom - 1); aCanvas.LineTo(aDrawRect.Right, aDrawRect.Bottom - 1); } } }
protected override void DoPaint(HCStyle aStyle, RECT aDrawRect, int aDataDrawTop, int aDataDrawBottom, int aDataScreenTop, int aDataScreenBottom, HCCanvas aCanvas, PaintInfo aPaintInfo) { if (this.Active && (!aPaintInfo.Print)) { aCanvas.Brush.Color = HC.clBtnFace; aCanvas.FillRect(aDrawRect); } if (!FLineHide) // 分数线 { aCanvas.Pen.Color = Color.Black; aCanvas.MoveTo(aDrawRect.Left + FPadding, aDrawRect.Top + FTopRect.Bottom + FPadding); aCanvas.LineTo(aDrawRect.Left + Width - FPadding, aDrawRect.Top + FTopRect.Bottom + FPadding); } if (!aPaintInfo.Print) { RECT vFocusRect = new RECT(); if (FActiveArea != ExpressArea.ceaNone) { if (FActiveArea == ExpressArea.ceaTop) { vFocusRect = FTopRect; } else if (FActiveArea == ExpressArea.ceaBottom) { vFocusRect = FBottomRect; } vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Pen.Color = Color.Blue; aCanvas.Rectangle(vFocusRect); } if ((FMouseMoveArea != ExpressArea.ceaNone) && (FMouseMoveArea != FActiveArea)) { if (FMouseMoveArea == ExpressArea.ceaTop) { vFocusRect = FTopRect; } else if (FMouseMoveArea == ExpressArea.ceaBottom) { vFocusRect = FBottomRect; } vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Pen.Color = HC.clMedGray; aCanvas.Rectangle(vFocusRect); } } aStyle.TextStyles[TextStyleNo].ApplyStyle(aCanvas, aPaintInfo.ScaleY / aPaintInfo.Zoom); aCanvas.TextOut(aDrawRect.Left + FTopRect.Left, aDrawRect.Top + FTopRect.Top, FTopText); aCanvas.TextOut(aDrawRect.Left + FBottomRect.Left, aDrawRect.Top + FBottomRect.Top, FBottomText); }
public void PaintTo(HCCanvas canvas, RECT rect) { int vX = 0, vHeight = this.Height, vW = 0; HCCodeLineType vLineType = HCCodeLineType.White; if (this.FTextVisible) { vHeight -= 12; } RECT vRect = new RECT(); for (int i = 0, vLen = this.FCode.Length; i < vLen; i++) { vLineType = HCCodeLineType.White; this.OneBarProps(this.FCode[i], ref vW, ref vLineType); if (vLineType != HCCodeLineType.White) { canvas.Brush.Color = Color.Black; } else { canvas.Brush.Color = Color.White; } vRect.Left = vX; vRect.Top = 0; vRect.Right = vX + vW * this.FZoom; vRect.Bottom = vHeight; vX = vRect.Right; vRect.Offset(rect.Left, rect.Top); canvas.FillRect(vRect); } if (this.FCode == "") { canvas.Pen.BeginUpdate(); try { canvas.Pen.Width = 1; canvas.Pen.Color = Color.Black; } finally { canvas.Pen.EndUpdate(); } canvas.Rectangle(rect); } if (this.FTextVisible) { canvas.Font.BeginUpdate(); try { canvas.Font.Size = 8; canvas.Font.FontStyles.Value = 0; canvas.Font.Family = "Arial"; canvas.Font.Color = Color.Black; } finally { canvas.Font.EndUpdate(); } canvas.Brush.Style = HCBrushStyle.bsClear; if (this.FCode != "") { canvas.TextOut(rect.Left + (rect.Width - canvas.TextWidth(this.FText)) / 2, rect.Top + vHeight + 2, this.FText); } else { SIZE vSize = canvas.TextExtent("无效条码" + this.FText); canvas.TextOut(rect.Left + (rect.Width - vSize.cx) / 2, rect.Top + (rect.Height - vSize.cy) / 2, "无效条码" + this.FText); } } }
private bool FShowLineNo; // 行号 protected override void DoDrawItemPaintBefor(HCCustomData aData, int aItemNo, int aDrawItemNo, RECT aDrawRect, RECT aClearRect, int aDataDrawLeft, int aDataDrawRight, int aDataDrawBottom, int aDataScreenTop, int ADataScreenBottom, HCCanvas ACanvas, PaintInfo APaintInfo) { base.DoDrawItemPaintBefor(aData, aItemNo, aDrawItemNo, aDrawRect, aClearRect, aDataDrawLeft, aDataDrawRight, aDataDrawBottom, aDataScreenTop, ADataScreenBottom, ACanvas, APaintInfo); if (!APaintInfo.Print) { if (FShowLineActiveMark) { if (aDrawItemNo == GetSelectStartDrawItemNo()) { ACanvas.Pen.BeginUpdate(); try { ACanvas.Pen.Color = Color.Blue; ACanvas.Pen.Style = HCPenStyle.psSolid; } finally { ACanvas.Pen.EndUpdate(); } int vTop = aDrawRect.Top + DrawItems[aDrawItemNo].Height / 2; ACanvas.MoveTo(aDataDrawLeft - 10, vTop); ACanvas.LineTo(aDataDrawLeft - 11, vTop); ACanvas.MoveTo(aDataDrawLeft - 11, vTop - 1); ACanvas.LineTo(aDataDrawLeft - 11, vTop + 2); ACanvas.MoveTo(aDataDrawLeft - 12, vTop - 2); ACanvas.LineTo(aDataDrawLeft - 12, vTop + 3); ACanvas.MoveTo(aDataDrawLeft - 13, vTop - 3); ACanvas.LineTo(aDataDrawLeft - 13, vTop + 4); ACanvas.MoveTo(aDataDrawLeft - 14, vTop - 4); ACanvas.LineTo(aDataDrawLeft - 14, vTop + 5); ACanvas.MoveTo(aDataDrawLeft - 15, vTop - 2); ACanvas.LineTo(aDataDrawLeft - 15, vTop + 3); ACanvas.MoveTo(aDataDrawLeft - 16, vTop - 2); ACanvas.LineTo(aDataDrawLeft - 16, vTop + 3); } } if (FShowUnderLine) { if (DrawItems[aDrawItemNo].LineFirst) { ACanvas.Pen.BeginUpdate(); try { ACanvas.Pen.Color = Color.Black; ACanvas.Pen.Style = HCPenStyle.psSolid; } finally { ACanvas.Pen.EndUpdate(); } ACanvas.MoveTo(aDataDrawLeft, aDrawRect.Bottom); ACanvas.LineTo(aDataDrawLeft + this.Width, aDrawRect.Bottom); } } if (FShowLineNo) { if (DrawItems[aDrawItemNo].LineFirst) { int vLineNo = 0; for (int i = 0; i <= aDrawItemNo; i++) { if (DrawItems[i].LineFirst) { vLineNo++; } } // 20181103 IntPtr vOldFont = ACanvas.Font.Handle; try { using (HCFont vFont = new HCFont()) { vFont.BeginUpdate(); try { vFont.Size = 10; vFont.Family = "Courier New"; vFont.Color = Color.FromArgb(180, 180, 180); } finally { vFont.EndUpdate(); } ACanvas.Brush.Style = HCBrushStyle.bsClear; GDI.SelectObject(ACanvas.Handle, vFont.Handle); int vTop = aDrawRect.Top + (aDrawRect.Bottom - aDrawRect.Top - 16) / 2; ACanvas.TextOut(aDataDrawLeft - 50, vTop, vLineNo.ToString()); } } finally { GDI.SelectObject(ACanvas.Font.Handle, vOldFont); } } } } }
protected override void DoPaint(HCStyle aStyle, RECT aDrawRect, int aDataDrawTop, int aDataDrawBottom, int aDataScreenTop, int aDataScreenBottom, HCCanvas aCanvas, PaintInfo aPaintInfo) { if (this.Active && (!aPaintInfo.Print)) { aCanvas.Brush.Color = HC.clBtnFace; aCanvas.FillRect(aDrawRect); } aCanvas.Pen.Color = Color.Black; aCanvas.MoveTo(aDrawRect.Left + FLeftRect.Right + Padding, aDrawRect.Top + TopRect.Bottom + Padding); aCanvas.LineTo(aDrawRect.Left + FRightRect.Left - Padding, aDrawRect.Top + TopRect.Bottom + Padding); if (!aPaintInfo.Print) { RECT vFocusRect = new RECT(); if (FActiveArea != ExpressArea.ceaNone) { switch (FActiveArea) { case ExpressArea.ceaLeft: vFocusRect = FLeftRect; break; case ExpressArea.ceaTop: vFocusRect = TopRect; break; case ExpressArea.ceaRight: vFocusRect = FRightRect; break; case ExpressArea.ceaBottom: vFocusRect = BottomRect; break; } vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Pen.Color = Color.Blue; aCanvas.Rectangle(vFocusRect); } if ((FMouseMoveArea != ExpressArea.ceaNone) && (FMouseMoveArea != FActiveArea)) { switch (FMouseMoveArea) { case ExpressArea.ceaLeft: vFocusRect = FLeftRect; break; case ExpressArea.ceaTop: vFocusRect = TopRect; break; case ExpressArea.ceaRight: vFocusRect = FRightRect; break; case ExpressArea.ceaBottom: vFocusRect = BottomRect; break; } vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Pen.Color = HC.clMedGray; aCanvas.Rectangle(vFocusRect); } } aStyle.TextStyles[TextStyleNo].ApplyStyle(aCanvas, aPaintInfo.ScaleY / aPaintInfo.Zoom); aCanvas.TextOut(aDrawRect.Left + FLeftRect.Left, aDrawRect.Top + FLeftRect.Top, FLeftText); aCanvas.TextOut(aDrawRect.Left + TopRect.Left, aDrawRect.Top + TopRect.Top, TopText); aCanvas.TextOut(aDrawRect.Left + FRightRect.Left, aDrawRect.Top + FRightRect.Top, FRightText); aCanvas.TextOut(aDrawRect.Left + BottomRect.Left, aDrawRect.Top + BottomRect.Top, BottomText); }
protected void DoPaintItems(HCCanvas canvas, RECT drawRect, PaintInfo paintInfo) { POINT vPoint = new POINT(); RECT vItemRect; for (int i = 0; i <= FItems.Count - 1; i++) { vPoint.X = FItems[i].Rect.Left; vPoint.Y = FItems[i].Rect.Top; vPoint.Offset(drawRect.Left, drawRect.Top); vItemRect = HC.Bounds(vPoint.X, vPoint.Y, RadioButtonWidth, RadioButtonWidth); if (paintInfo.Print) { if (FItems[i].Checked) { if (FRadioStyle == HCRadioStyle.Radio) { HC.HCDrawFrameControl(canvas, vItemRect, HCControlState.hcsChecked, HCControlStyle.hcyRadio); } else { HC.HCDrawFrameControl(canvas, vItemRect, HCControlState.hcsChecked, HCControlStyle.hcyCheck); } } else { if (FRadioStyle == HCRadioStyle.Radio) { HC.HCDrawFrameControl(canvas, vItemRect, HCControlState.hcsCustom, HCControlStyle.hcyRadio); } else { HC.HCDrawFrameControl(canvas, vItemRect, HCControlState.hcsCustom, HCControlStyle.hcyCheck); } } canvas.Brush.Style = HCBrushStyle.bsClear; } else { if (FItems[i].Checked) { if (FRadioStyle == HCRadioStyle.Radio) { User.DrawFrameControl(canvas.Handle, ref vItemRect, Kernel.DFC_BUTTON, Kernel.DFCS_CHECKED | Kernel.DFCS_BUTTONRADIO); } else { User.DrawFrameControl(canvas.Handle, ref vItemRect, Kernel.DFC_BUTTON, Kernel.DFCS_CHECKED | Kernel.DFCS_BUTTONCHECK); } } else { if (FRadioStyle == HCRadioStyle.Radio) { User.DrawFrameControl(canvas.Handle, ref vItemRect, Kernel.DFC_BUTTON, Kernel.DFCS_BUTTONRADIO); } else { User.DrawFrameControl(canvas.Handle, ref vItemRect, Kernel.DFC_BUTTON, Kernel.DFCS_BUTTONCHECK); } } } canvas.TextOut(vPoint.X + RadioButtonWidth, vPoint.Y, FItems[i].Text); } }