private void DoDeItemPaintBKG(object sender, HCCanvas aCanvas, RECT aDrawRect, PaintInfo aPaintInfo) { if (!aPaintInfo.Print) { DeItem vDeItem = sender as DeItem; 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 && vDeItem.EditProtect) { aCanvas.Brush.Color = HC.View.HC.clBtnFace; aCanvas.FillRect(aDrawRect); } } }
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) { if ((!aPaintInfo.Print) && (aData.Items[aItemNo] is DeItem)) { DeItem vDeItem = aData.Items[aItemNo] as DeItem; 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 && vDeItem.EditProtect) { aCanvas.Brush.Color = HC.View.HC.clBtnFace; aCanvas.FillRect(aDrawRect); } } } }
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); } } }
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); } } }
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); aCanvas.TextOut(aDrawRect.Left + LeftRect.Left, aDrawRect.Top + LeftRect.Top, LeftText); aCanvas.TextOut(aDrawRect.Left + TopRect.Left, aDrawRect.Top + TopRect.Top, TopText); aCanvas.TextOut(aDrawRect.Left + RightRect.Left, aDrawRect.Top + RightRect.Top, RightText); aCanvas.TextOut(aDrawRect.Left + BottomRect.Left, aDrawRect.Top + BottomRect.Top, BottomText); aCanvas.Pen.Color = Color.Black; aCanvas.DrawLine(aDrawRect.Left, aDrawRect.Top, aDrawRect.Right, aDrawRect.Bottom); aCanvas.DrawLine(aDrawRect.Right, aDrawRect.Top, aDrawRect.Left, aDrawRect.Bottom); if (!aPaintInfo.Print) { RECT vFocusRect = new RECT(); if (FMouseIn) { aCanvas.Pen.Color = Color.Gray; vFocusRect = LeftRect; vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Rectangle(vFocusRect); vFocusRect = TopRect; vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Rectangle(vFocusRect); vFocusRect = RightRect; vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Rectangle(vFocusRect); vFocusRect = BottomRect; vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Rectangle(vFocusRect); } if (FActiveArea != ExpressArea.ceaNone) { switch (FActiveArea) { case ExpressArea.ceaLeft: vFocusRect = LeftRect; break; case ExpressArea.ceaTop: vFocusRect = TopRect; break; case ExpressArea.ceaRight: vFocusRect = RightRect; break; default: vFocusRect = BottomRect; break; } vFocusRect.Offset(aDrawRect.Left, aDrawRect.Top); vFocusRect.Inflate(2, 2); aCanvas.Pen.Color = Color.Blue; aCanvas.Rectangle(vFocusRect); } } }