/// <summary> 清除并返回为处理分页比净高增加的高度(为重新格式化时后面计算偏移用) </summary> public int ClearFormatExtraHeight() { int Result = 0, vFormatIncHight = 0; int vFmtOffset = 0; for (int i = 1; i < DrawItems.Count; i++) { if (DrawItems[i].LineFirst) { if (DrawItems[i].Rect.Top != DrawItems[i - 1].Rect.Bottom) { vFmtOffset = DrawItems[i].Rect.Top - DrawItems[i - 1].Rect.Bottom; if (vFmtOffset > Result) { Result = vFmtOffset; } } } HC.OffsetRect(ref DrawItems[i].Rect, 0, -vFmtOffset); if (Items[DrawItems[i].ItemNo].StyleNo < HCStyle.Null) { vFormatIncHight = (Items[DrawItems[i].ItemNo] as HCCustomRectItem).ClearFormatExtraHeight(); DrawItems[i].Rect.Bottom = DrawItems[i].Rect.Bottom - vFormatIncHight; } } 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); 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) { 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); } }