public override void PaintTop(HCCanvas aCanvas) { aCanvas.Pen.Width = 1; //int vH = this.OwnerData.Style.LineSpaceMin / 2; int vH = (FDrawRect.Height - this.OwnerData.Style.TextStyles[FTextStyleNo].FontHeight) / 2; if (this.MarkType == HC.View.MarkType.cmtBeg) { aCanvas.Pen.BeginUpdate(); try { aCanvas.Pen.Width = 1; aCanvas.Pen.Style = HCPenStyle.psSolid; aCanvas.Pen.Color = Color.FromArgb(0, 0, 255); } finally { aCanvas.Pen.EndUpdate(); } aCanvas.MoveTo(FDrawRect.Left + 2, FDrawRect.Top + vH); aCanvas.LineTo(FDrawRect.Left, FDrawRect.Top + vH); aCanvas.LineTo(FDrawRect.Left, FDrawRect.Bottom - vH); aCanvas.LineTo(FDrawRect.Left + 2, FDrawRect.Bottom - vH); } else { aCanvas.Pen.BeginUpdate(); try { aCanvas.Pen.Width = 1; aCanvas.Pen.Style = HCPenStyle.psSolid; aCanvas.Pen.Color = Color.FromArgb(0, 0, 255); } finally { aCanvas.Pen.EndUpdate(); } aCanvas.MoveTo(FDrawRect.Right - 2, FDrawRect.Top + vH); aCanvas.LineTo(FDrawRect.Right, FDrawRect.Top + vH); aCanvas.LineTo(FDrawRect.Right, FDrawRect.Bottom - vH); aCanvas.LineTo(FDrawRect.Right - 2, FDrawRect.Bottom - vH); } }
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.View.HC.clBtnFace; aCanvas.FillRect(aDrawRect); } aStyle.TextStyles[TextStyleNo].ApplyStyle(aCanvas, aPaintInfo.ScaleY / aPaintInfo.Zoom); if (FLeftTopText != "") { aCanvas.TextOut(aDrawRect.Left + FLeftTopRect.Left, aDrawRect.Top + FLeftTopRect.Top, FLeftTopText); } if (FLeftBottomText != "") { aCanvas.TextOut(aDrawRect.Left + FLeftBottomRect.Left, aDrawRect.Top + FLeftBottomRect.Top, FLeftBottomText); } if (FRightTopText != "") { aCanvas.TextOut(aDrawRect.Left + FRightTopRect.Left, aDrawRect.Top + FRightTopRect.Top, FRightTopText); } if (FRightBottomText != "") { aCanvas.TextOut(aDrawRect.Left + FRightBottomRect.Left, aDrawRect.Top + FRightBottomRect.Top, FRightBottomText); } // 十字线 aCanvas.Pen.Color = Color.Black; aCanvas.MoveTo(aDrawRect.Left, aDrawRect.Top + FLeftTopRect.Bottom + FPadding); aCanvas.LineTo(aDrawRect.Right, aDrawRect.Top + FLeftTopRect.Bottom + FPadding); aCanvas.MoveTo(aDrawRect.Left + FLeftTopRect.Right + FPadding, aDrawRect.Top); aCanvas.LineTo(aDrawRect.Left + FLeftTopRect.Right + FPadding, aDrawRect.Bottom); if (!aPaintInfo.Print) { RECT vFocusRect = new RECT(); if (FActiveArea != ToothArea.ctaNone) { switch (FActiveArea) { case ToothArea.ctaLeftTop: vFocusRect = FLeftTopRect; break; case ToothArea.ctaLeftBottom: vFocusRect = FLeftBottomRect; break; case ToothArea.ctaRightTop: vFocusRect = FRightTopRect; break; case ToothArea.ctaRightBottom: vFocusRect = FRightBottomRect; break; } vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Pen.Color = Color.Gray; aCanvas.Rectangle(vFocusRect); } if ((FMouseMoveArea != ToothArea.ctaNone) && (FMouseMoveArea != FActiveArea)) { switch (FMouseMoveArea) { case ToothArea.ctaLeftTop: vFocusRect = FLeftTopRect; break; case ToothArea.ctaLeftBottom: vFocusRect = FLeftBottomRect; break; case ToothArea.ctaRightTop: vFocusRect = FRightTopRect; break; case ToothArea.ctaRightBottom: vFocusRect = FRightBottomRect; break; } vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Pen.Color = Color.LightGray; aCanvas.Rectangle(vFocusRect); } } }
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 (FOnPaintBKG != null) { FOnPaintBKG(this, aCanvas, aDrawRect, aPaintInfo); } if (FStyleEx == StyleExtra.cseDel) { int vTextHeight = aStyle.TextStyles[this.StyleNo].FontHeight; int vAlignVert = User.DT_BOTTOM; switch (aStyle.ParaStyles[this.ParaNo].AlignVert) { case ParaAlignVert.pavCenter: vAlignVert = User.DT_CENTER; break; case ParaAlignVert.pavTop: vAlignVert = User.DT_TOP; break; default: vAlignVert = User.DT_BOTTOM; break; } int vTop = aDrawRect.Top; switch (vAlignVert) { case User.DT_TOP: vTop = aDrawRect.Top; break; case User.DT_CENTER: vTop = aDrawRect.Top + (aDrawRect.Bottom - aDrawRect.Top - vTextHeight) / 2; break; default: vTop = aDrawRect.Bottom - vTextHeight; break; } // 绘制删除线 aCanvas.Pen.BeginUpdate(); try { aCanvas.Pen.Style = HCPenStyle.psSolid; aCanvas.Pen.Color = Color.Red; } finally { aCanvas.Pen.EndUpdate(); } vTop = vTop + (aDrawRect.Bottom - vTop) / 2; aCanvas.MoveTo(aDrawRect.Left, vTop - 1); aCanvas.LineTo(aDrawRect.Right, vTop - 1); aCanvas.MoveTo(aDrawRect.Left, vTop + 2); aCanvas.LineTo(aDrawRect.Right, vTop + 2); } else if (FStyleEx == StyleExtra.cseAdd) { aCanvas.Pen.BeginUpdate(); try { aCanvas.Pen.Style = HCPenStyle.psSolid; aCanvas.Pen.Color = Color.Blue; } finally { aCanvas.Pen.EndUpdate(); } aCanvas.MoveTo(aDrawRect.Left, aDrawRect.Bottom); aCanvas.LineTo(aDrawRect.Right, aDrawRect.Bottom); } }
private void DoDeItemPaintBKG(object sender, HCCanvas aCanvas, RECT aDrawRect, PaintInfo aPaintInfo) { if (aPaintInfo.Print) { return; } DeItem vDeItem = sender as DeItem; if (!vDeItem.Selected()) { if (vDeItem.IsElement) { if (vDeItem.MouseIn || vDeItem.Active) { if (vDeItem.IsSelectPart || vDeItem.IsSelectComplate) { } else { if (vDeItem[DeProp.Name] != vDeItem.Text) { aCanvas.Brush.Color = FDeDoneColor; } else // 没填写过 { aCanvas.Brush.Color = FDeUnDoneColor; } aCanvas.FillRect(aDrawRect); } } else // 不是数据元 if (FDesignMode) { aCanvas.Brush.Color = HC.View.HC.clBtnFace; aCanvas.FillRect(aDrawRect); } } else // 不是数据元 if (FDesignMode && vDeItem.EditProtect) { aCanvas.Brush.Color = HC.View.HC.clBtnFace; aCanvas.FillRect(aDrawRect); } } if (!FHideTrace) // 显示痕迹 { if (vDeItem.StyleEx == StyleExtra.cseDel) // 痕迹 { int vTextHeight = Style.TextStyles[vDeItem.StyleNo].FontHeight; int vAlignVert = User.DT_BOTTOM; switch (Style.ParaStyles[vDeItem.ParaNo].AlignVert) { case ParaAlignVert.pavCenter: vAlignVert = User.DT_CENTER; break; case ParaAlignVert.pavTop: vAlignVert = User.DT_TOP; break; default: vAlignVert = User.DT_BOTTOM; break; } int vTop = aDrawRect.Top; switch (vAlignVert) { case User.DT_TOP: vTop = aDrawRect.Top; break; case User.DT_CENTER: vTop = aDrawRect.Top + (aDrawRect.Bottom - aDrawRect.Top - vTextHeight) / 2; break; default: vTop = aDrawRect.Bottom - vTextHeight; break; } // 绘制删除线 aCanvas.Pen.BeginUpdate(); try { aCanvas.Pen.Style = HCPenStyle.psSolid; aCanvas.Pen.Color = Color.Red; } finally { aCanvas.Pen.EndUpdate(); } vTop = vTop + (aDrawRect.Bottom - vTop) / 2; aCanvas.MoveTo(aDrawRect.Left, vTop - 1); aCanvas.LineTo(aDrawRect.Right, vTop - 1); aCanvas.MoveTo(aDrawRect.Left, vTop + 2); aCanvas.LineTo(aDrawRect.Right, vTop + 2); } else if (vDeItem.StyleEx == StyleExtra.cseAdd) { aCanvas.Pen.BeginUpdate(); try { aCanvas.Pen.Style = HCPenStyle.psSolid; aCanvas.Pen.Color = Color.Blue; } finally { aCanvas.Pen.EndUpdate(); } aCanvas.MoveTo(aDrawRect.Left, aDrawRect.Bottom); aCanvas.LineTo(aDrawRect.Right, aDrawRect.Bottom); } } }