Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }
Ejemplo n.º 4
0
        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);
                }
            }
        }