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); } }
public static string GetBorderSidePro(HCBorderSides aBorderSides) { string Result = ""; if (aBorderSides.Contains((byte)BorderSide.cbsLeft)) Result = "left"; if (aBorderSides.Contains((byte)BorderSide.cbsTop)) { if (Result != "") Result = Result + ",top"; else Result = "top"; } if (aBorderSides.Contains((byte)BorderSide.cbsRight)) { if (Result != "") Result = Result + ",right"; else Result = "right"; } if (aBorderSides.Contains((byte)BorderSide.cbsBottom)) { if (Result != "") Result = Result + ",bottom"; else Result = "bottom"; } if (aBorderSides.Contains((byte)BorderSide.cbsLTRB)) { if (Result != "") Result = Result + ",ltrb"; else Result = "ltrb"; } if (aBorderSides.Contains((byte)BorderSide.cbsRTLB)) { if (Result != "") Result = Result + ",rtlb"; else Result = "rtlb"; } return Result; }
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); } } }