protected override void DoDrawItemPaintContent(HCCustomData aData, int aItemNo, int aDrawItemNo, RECT aDrawRect, RECT aClearRect, string aDrawText, int aDataDrawLeft, int aDataDrawRight, int aDataDrawBottom, int aDataScreenTop, int aDataScreenBottom, HCCanvas aCanvas, PaintInfo aPaintInfo) { if ((FOnDrawItemAnnotate != null) && DrawItemOfAnnotate(aDrawItemNo, aCanvas, aClearRect)) // 当前DrawItem是某批注中的一部分 { for (int i = 0; i <= FDrawItemAnnotates.Count - 1; i++) { HCDrawItemAnnotate vDrawAnnotate = FDrawItemAnnotates[i]; if (!aPaintInfo.Print) { bool vActive = vDrawAnnotate.DataAnnotate.Equals(FHotAnnotate) || vDrawAnnotate.DataAnnotate.Equals(FActiveAnnotate); if (vActive) { aCanvas.Brush.Color = HC.AnnotateBKActiveColor; } else { aCanvas.Brush.Color = HC.AnnotateBKColor; } } if (vDrawAnnotate.First()) // 是批注头 { aCanvas.Pen.Color = Color.Red; aCanvas.MoveTo(vDrawAnnotate.DrawRect.Left + 2, vDrawAnnotate.DrawRect.Top - 2); aCanvas.LineTo(vDrawAnnotate.DrawRect.Left, vDrawAnnotate.DrawRect.Top); aCanvas.LineTo(vDrawAnnotate.DrawRect.Left, vDrawAnnotate.DrawRect.Bottom); aCanvas.LineTo(vDrawAnnotate.DrawRect.Left + 2, vDrawAnnotate.DrawRect.Bottom + 2); } if (vDrawAnnotate.Last()) // 是批注尾 { aCanvas.Pen.Color = Color.Red; aCanvas.MoveTo(vDrawAnnotate.DrawRect.Right - 2, vDrawAnnotate.DrawRect.Top - 2); aCanvas.LineTo(vDrawAnnotate.DrawRect.Right, vDrawAnnotate.DrawRect.Top); aCanvas.LineTo(vDrawAnnotate.DrawRect.Right, vDrawAnnotate.DrawRect.Bottom); aCanvas.LineTo(vDrawAnnotate.DrawRect.Right - 2, vDrawAnnotate.DrawRect.Bottom + 2); FOnDrawItemAnnotate(aData, aDrawItemNo, vDrawAnnotate.DrawRect, vDrawAnnotate.DataAnnotate); } } } base.DoDrawItemPaintContent(aData, aItemNo, aDrawItemNo, aDrawRect, aClearRect, aDrawText, aDataDrawLeft, aDataDrawRight, aDataDrawBottom, aDataScreenTop, aDataScreenBottom, aCanvas, aPaintInfo); }
private void DoSyncDeItem(object sender, HCCustomData aData, HCCustomItem aItem) { if (aItem is DeItem) { DeItem vDeItem = aItem as DeItem; if (vDeItem.IsElement) { string vDeIndex = vDeItem[DeProp.Index]; if (vDeIndex != "") { DataRow[] vDataRows = FDataElementSetMacro.Select("ObjID=" + vDeIndex); if (vDataRows.Length == 1) // 有此数据元的替换信息 { string vsResult = ""; switch (vDataRows[0]["MacroType"].ToString()) { case "1": // 患者信息(客户端处理) vsResult = EMR.GetValueAsString(PatientInfo.FieldByName(vDataRows[0]["Macro"].ToString())); break; case "2": // 用户信息(客户端处理) vsResult = EMR.GetValueAsString(UserInfo.FieldByName(vDataRows[0]["Macro"].ToString())); break; case "3": // 病历信息(服务端处理) vsResult = GetDeValueFromStruct(PatientInfo.PatID, int.Parse(vDataRows[0]["Macro"].ToString()), vDeItem[DeProp.Index]); break; case "4": // 环境信息(服务端,如当前时间等) vsResult = EMR.GetValueAsString(FServerInfo.FieldByName(vDataRows[0]["Macro"].ToString())); break; case "5": // SQL脚本(服务端处理) vsResult = GetMarcoSqlResult(vDeIndex, vDataRows[0]["Macro"].ToString()); break; default: break; } if (vsResult != "") { vDeItem.Text = vsResult; } } } } } }
/// <summary> 遍历处理痕迹隐藏或显示 </summary> private void DoHideTraceTraverse(HCCustomData aData, int aItemNo, int aTags, ref bool aStop) { if (!(aData.Items[aItemNo] is DeItem)) // 只对元素生效 { return; } DeItem vDeItem = aData.Items[aItemNo] as DeItem; if (vDeItem.StyleEx == StyleExtra.cseDel) { vDeItem.Visible = !(aTags == TTravTag.HideTrace); // 隐藏/显示痕迹 } }
public HCRadioGroup(HCCustomData aOwnerData) : base(aOwnerData) { this.StyleNo = HCStyle.RadioGroup; Width = 100; FBatchCount = 0; FColumns = 0; FColumnAlign = true; FItemHit = false; FBoxRight = false; FItems = new HCList <HCRadioButton>(); FItems.OnInsert += new EventHandler <NListEventArgs <HCRadioButton> >(DoItemNotify); FItems.OnDelete += OnItemDelete; }
public override void FormatToDrawItem(HCCustomData aRichData, int aItemNo) { Height = FMinHeight; aRichData.Style.ApplyTempStyle(TextStyleNo); int vLeft = FPaddingLeft; int vTop = FPaddingTop; SIZE vSize = new SIZE(); for (int i = 0; i <= FItems.Count - 1; i++) { if (FItems[i].Text != "") { vSize = aRichData.Style.TempCanvas.TextExtent(FItems[i].Text); } else { vSize = aRichData.Style.TempCanvas.TextExtent("H"); } if (this.AutoSize && vLeft + vSize.cx + RadioButtonWidth > Width) { vLeft = FPaddingLeft; vTop = vTop + vSize.cy + FPaddingBottom; } FItems[i].Position.X = vLeft; FItems[i].Position.Y = vTop; vLeft = vLeft + RadioButtonWidth + vSize.cx + FPaddingRight; } if (this.AutoSize) { Width = vLeft; } Height = vTop + vSize.cy + FPaddingBottom; if (Width < FMinWidth) { Width = FMinWidth; } if (Height < FMinHeight) { Height = FMinHeight; } }
// 当前RectItem格式化时所属的Data(为松耦合请传入TCustomRichData类型) public override void FormatToDrawItem(HCCustomData aRichData, int aItemNo) { this.Width = 0; this.Height = aRichData.Style.TextStyles[0].FontHeight; // 默认大小 if (this.MarkType == MarkType.cmtBeg) { if (aItemNo < aRichData.Items.Count - 1) { HCCustomItem vItem = aRichData.Items[aItemNo + 1]; if ((vItem.StyleNo == this.StyleNo) && // 下一个是组标识 ((vItem as HCDomainItem).MarkType == MarkType.cmtEnd)) // 下一个是结束标识 { this.Width = 10; // 增加宽度以便输入时光标可方便点击 } else if (vItem.ParaFirst) // 下一个是段首,我是段尾 { this.Width = 10; // 增加宽度以便输入时光标可方便点击 } else if (vItem.StyleNo > HCStyle.Null) // 后面是文本,跟随后面的高度 { this.Height = aRichData.Style.TextStyles[vItem.StyleNo].FontHeight; } } else { this.Width = 10; } } else // 域结束标识 { HCCustomItem vItem = aRichData.Items[aItemNo - 1]; if ((vItem.StyleNo == this.StyleNo) && ((vItem as HCDomainItem).MarkType == MarkType.cmtBeg)) { this.Width = 10; } else if (this.ParaFirst) // 结束标识是段首,增加宽度 { this.Width = 10; } else if (vItem.StyleNo > HCStyle.Null) // 前面是文本,距离前面的高度 { this.Height = aRichData.Style.TextStyles[vItem.StyleNo].FontHeight; } } }
public EmrToothItem(HCCustomData aOwnerData, string aLeftTopText, string aRightTopText, string aLeftBottomText, string aRightBottomText) : base(aOwnerData) { this.StyleNo = EMR.EMRSTYLE_TOOTH; FPadding = 2; FActiveArea = ToothArea.ctaNone; FCaretOffset = -1; FEmptyLower = true; FLeftTopText = aLeftTopText; FLeftBottomText = aLeftBottomText; FRightTopText = aRightTopText; FRightBottomText = aRightBottomText; }
public HCEditItem(HCCustomData AOwnerData, string AText) : base(AOwnerData) { this.StyleNo = HCStyle.Edit; FText = AText; FMouseIn = false; FMargin = 4; FCaretOffset = -1; Width = 50; FBorderWidth = 1; FBorderSides = new HCBorderSides(); FBorderSides.InClude((byte)BorderSide.cbsLeft); FBorderSides.InClude((byte)BorderSide.cbsTop); FBorderSides.InClude((byte)BorderSide.cbsRight); FBorderSides.InClude((byte)BorderSide.cbsBottom); }
public HCPageBreakItem(HCCustomData AOwnerData, int AWidth, int AHeight) : base(AOwnerData, AWidth, AHeight) { StyleNo = HCStyle.PageBreak; if (AOwnerData.Style.CurStyleNo > HCStyle.Null) { AOwnerData.Style.TextStyles[AOwnerData.Style.CurStyleNo].ApplyStyle(AOwnerData.Style.DefCanvas); } else { AOwnerData.Style.TextStyles[0].ApplyStyle(AOwnerData.Style.DefCanvas); } Height = AOwnerData.Style.DefCanvas.TextHeight("H"); }
public HCPageBreakItem(HCCustomData aOwnerData, int aWidth, int aHeight) : base(aOwnerData, aWidth, aHeight) { StyleNo = HCStyle.PageBreak; if (aOwnerData.CurStyleNo > HCStyle.Null) { aOwnerData.Style.ApplyTempStyle(aOwnerData.CurStyleNo); Height = aOwnerData.Style.TextStyles[aOwnerData.CurStyleNo].FontHeight; } else { aOwnerData.Style.ApplyTempStyle(0); Height = aOwnerData.Style.TextStyles[0].FontHeight; } }
protected override void DoSectionRemoveItem(object sender, HCCustomData aData, HCCustomItem aItem) { base.DoSectionRemoveItem(sender, aData, aItem); if (aItem == FActiveItem) { FState = HCToolState.hcsRemoveItem; try { CancelActiveToolItem(); } finally { FState = HCToolState.hcsNone; } } }
protected override void DoDrawItemPaintContent(HCCustomData aData, int aItemNo, int aDrawItemNo, RECT aDrawRect, RECT aClearRect, string aDrawText, int aDataDrawLeft, int aDataDrawRight, int aDataDrawBottom, int aDataScreenTop, int aDataScreenBottom, HCCanvas aCanvas, PaintInfo aPaintInfo) { if ((!aPaintInfo.Print) && (FOnDrawItemAnnotate != null)) // 当前DrawItem是某批注中的一部分 { if (aData.Items[aItemNo].StyleNo == HCStyle.Annotate && ((aData.Items[aItemNo] as HCAnnotateItem).MarkType == MarkType.cmtEnd)) { FOnDrawItemAnnotate(aData, aDrawItemNo, aDrawRect, aData.Items[aItemNo] as HCAnnotateItem); } } base.DoDrawItemPaintContent(aData, aItemNo, aDrawItemNo, aDrawRect, aClearRect, aDrawText, aDataDrawLeft, aDataDrawRight, aDataDrawBottom, aDataScreenTop, aDataScreenBottom, aCanvas, aPaintInfo); }
public override void GetCaretInfo(int aItemNo, int aOffset, ref HCCaretInfo aCaretInfo) { base.GetCaretInfo(aItemNo, aOffset, ref aCaretInfo); bool vRePaint = false; // 赋值激活Group信息,清除在 MouseDown if (this.SelectInfo.StartItemNo >= 0) { HCCustomData vTopData = GetTopLevelData(); if (vTopData == this) { if (this.Style.DrawActiveDomainRegion && (FActiveDomain.BeginNo >= 0)) { vRePaint = true; } // 获取当前光标处ActiveDeGroup信息 GetDomainFrom(SelectInfo.StartItemNo, SelectInfo.StartItemOffset, FActiveDomain); if (this.Style.DrawActiveDomainRegion && (FActiveDomain.BeginNo >= 0)) { vRePaint = true; } } } else if (this.Style.DrawActiveDomainRegion && (FActiveDomain.BeginNo >= 0)) { FActiveDomain.Clear(); vRePaint = true; } if (vRePaint) { Style.UpdateInfoRePaint(); } if (FCaretItemChanged) { FCaretItemChanged = false; if (FOnCaretItemChanged != null) { FOnCaretItemChanged(this, Items[SelectInfo.StartItemNo]); } } }
protected override void DoDrawItemPaintBefor(HCCustomData aData, int aDrawItemNo, RECT aDrawRect, int aDataDrawLeft, int aDataDrawBottom, int aDataScreenTop, int ADataScreenBottom, HCCanvas ACanvas, PaintInfo APaintInfo) { base.DoDrawItemPaintBefor(aData, aDrawItemNo, aDrawRect, aDataDrawLeft, aDataDrawBottom, aDataScreenTop, ADataScreenBottom, ACanvas, APaintInfo); if (!APaintInfo.Print) // 拼接域范围 { bool vDrawHotDomainBorde = false; bool vDrawActiveDomainBorde = false; int vItemNo = DrawItems[aDrawItemNo].ItemNo; if (FHotDomain.BeginNo >= 0) { vDrawHotDomainBorde = FHotDomain.Contain(vItemNo); } if (FActiveDomain.BeginNo >= 0) { vDrawActiveDomainBorde = FActiveDomain.Contain(vItemNo); } if (vDrawHotDomainBorde || vDrawActiveDomainBorde) // 在Hot域或激活域中 { IntPtr vDliRGN = (IntPtr)GDI.CreateRectRgn(aDrawRect.Left, aDrawRect.Top, aDrawRect.Right, aDrawRect.Bottom); try { if ((FHotDomain.BeginNo >= 0) && vDrawHotDomainBorde) { GDI.CombineRgn(FHotDomainRGN, FHotDomainRGN, vDliRGN, GDI.RGN_OR); } if ((FActiveDomain.BeginNo >= 0) && vDrawActiveDomainBorde) { GDI.CombineRgn(FActiveDomainRGN, FActiveDomainRGN, vDliRGN, GDI.RGN_OR); } } finally { GDI.DeleteObject(vDliRGN); } } } }
private void GetBeforString(HCCustomData aData, int aStartItemNo, ref string aBefor) { string vText = ""; for (int i = aStartItemNo - 1; i >= 0; i--) { vText = aData.Items[i].Text; if ((vText != "") && (GetCharBefor(vText.Length, ref vText))) { aBefor = vText + aBefor; return; } else { aBefor = vText + aBefor; } } }
private void GetAfterString(HCCustomData aData, int aStartItemNo, ref string aAfter) { string vText = ""; for (int i = aStartItemNo + 1; i < aData.Items.Count; i++) { vText = aData.Items[i].Text; if ((vText != "") && (GetCharAfter(1, ref vText))) { aAfter = aAfter + vText; return; } else { aAfter = aAfter + vText; } } }
protected override void DoDrawItemPaintAfter(HCCustomData aData, int aItemNo, int aDrawItemNo, RECT aDrawRect, RECT aClearRect, int aDataDrawLeft, int aDataDrawRight, int aDataDrawBottom, int aDataScreenTop, int aDataScreenBottom, HCCanvas ACanvas, PaintInfo APaintInfo) { base.DoDrawItemPaintAfter(aData, aItemNo, aDrawItemNo, aDrawRect, aClearRect, aDataDrawLeft, aDataDrawRight, aDataDrawBottom, aDataScreenTop, aDataScreenBottom, ACanvas, APaintInfo); if (FShowUnderLine) { if (DrawItems[aDrawItemNo].LineFirst) { ACanvas.Pen.BeginUpdate(); try { ACanvas.Pen.Color = Color.Black; ACanvas.Pen.Style = HCPenStyle.psSolid; } finally { ACanvas.Pen.EndUpdate(); } ACanvas.MoveTo(aDataDrawLeft, aDrawRect.Top - 1); ACanvas.LineTo(aDataDrawLeft + this.Width, aDrawRect.Top - 1); } if (aDrawItemNo == DrawItems.Count - 1) { ACanvas.Pen.BeginUpdate(); try { ACanvas.Pen.Color = Color.Black; ACanvas.Pen.Style = HCPenStyle.psSolid; } finally { ACanvas.Pen.EndUpdate(); } ACanvas.MoveTo(aDataDrawLeft, aDrawRect.Bottom); ACanvas.LineTo(aDataDrawLeft + this.Width, aDrawRect.Bottom); } } }
/// <summary> 创建指定样式的Item </summary> /// <param name="aData">要创建Item的Data</param> /// <param name="aStyleNo">要创建的Item样式</param> /// <returns>创建好的Item</returns> public static HCCustomItem CreateEmrStyleItem(HCCustomData aData, int aStyleNo) { switch (aStyleNo) { case HCStyle.Table: return(new DeTable(aData, 1, 1, 1)); case HCStyle.CheckBox: return(new DeCheckBox(aData, "勾选框", false)); case HCStyle.Edit: return(new DeEdit(aData, "")); case HCStyle.Combobox: return(new DeCombobox(aData, "")); case HCStyle.DateTimePicker: return(new DeDateTimePicker(aData, DateTime.Now)); case HCStyle.Button: return(new DeButton(aData, "")); case HCStyle.RadioGroup: return(new DeRadioGroup(aData)); case EMR.EMRSTYLE_YUEJING: return(new EmrYueJingItem(aData, "", "", "", "")); case EMR.EMRSTYLE_TOOTH: return(new EmrToothItem(aData, "", "", "", "")); case EMR.EMRSTYLE_FANGJIAO: return(new EmrFangJiaoItem(aData, "", "", "", "")); case HCStyle.FloatBarCode: return(new DeFloatBarCodeItem(aData)); case HCStyle.Image: return(new DeImageItem(aData)); default: return(null); } }
public HCEditItem(HCCustomData aOwnerData, string aText) : base(aOwnerData) { this.StyleNo = HCStyle.Edit; FText = aText; FPaddingLeft = 4; FPaddingRight = 4; FPaddingTop = 4; FPaddingBottom = 4; FCaretOffset = -1; Width = 50; FPrintOnlyText = false; FBorderWidth = 1; FBorderSides = new HCBorderSides(); FBorderSides.InClude((byte)BorderSide.cbsLeft); FBorderSides.InClude((byte)BorderSide.cbsTop); FBorderSides.InClude((byte)BorderSide.cbsRight); FBorderSides.InClude((byte)BorderSide.cbsBottom); }
protected override void DoSectionRemoveItem(object sender, HCCustomData aData, HCCustomItem aItem) { base.DoSectionRemoveItem(sender, aData, aItem); if (aItem == FActiveItem) { if (FActiveItem is HCImageItem) { (FActiveItem as HCImageItem).ShapeManager.DisActive(); FImageToolBar.Visible = false; } else if (FActiveItem is HCTableItem) // 是表格 { FTableToolBar.Visible = false; } FActiveItem = null; } }
private void DoTraverseItem(HCCustomData aData, int aItemNo, int aTag, ref bool aStop) { if (!(aData.Items[aItemNo] is DeItem)) { return; } DeItem vDeItem = aData.Items[aItemNo] as DeItem; if (FTraverseTags.Contains(TraverseTag.ttWriteTraceInfo)) { switch (vDeItem.StyleEx) { case StyleExtra.cseNone: vDeItem[DeProp.Trace] = ""; break; case StyleExtra.cseDel: if (vDeItem[DeProp.Trace] == "") { vDeItem[DeProp.Trace] = UserInfo.Name + "(" + UserInfo.ID + ") 删除 " + string.Format("{0:yyyy-MM-dd}", DateTime.Now); } break; case StyleExtra.cseAdd: if (vDeItem[DeProp.Trace] == "") { vDeItem[DeProp.Trace] = UserInfo.Name + "(" + UserInfo.ID + ") 添加 " + string.Format("{0:yyyy-MM-dd}", DateTime.Now); } break; } } if (FTraverseTags.Contains(TraverseTag.ttShowTrace)) { if (vDeItem.StyleEx == StyleExtra.cseDel) { vDeItem.Visible = !vDeItem.Visible; } } }
public byte DROPDOWNCOUNT = 8; // 下拉弹出时显示的Item数量 public HCComboboxItem(HCCustomData AOwnerData, string AText) : base(AOwnerData, AText) { this.StyleNo = HCStyle.Combobox; Width = 80; FSaveItem = true; FItems = new List <string>(); FScrollBar = new HCComScrollBar(); FScrollBar.Orientation = Orientation.oriVertical; FScrollBar.OnScroll = DoScroll; FPopupForm = new HCPopupForm(); FPopupForm.OnPaint = DoPopupFormPaint; FPopupForm.OnPopupClose = DoPopupFormClose; FPopupForm.OnMouseDown = DoPopupFormMouseDown; FPopupForm.OnMouseMove = DoPopupFormMouseMove; FPopupForm.OnMouseUp = DoPopupFormMouseUp; FPopupForm.OnMouseWheel = DoPopupFormMouseWheel; }
// 当前RectItem格式化时所属的Data(为松耦合请传入TCustomRichData类型) public override void FormatToDrawItem(HCCustomData ARichData, int AItemNo) { this.Width = 0; this.Height = 5; // 默认大小 if (this.MarkType == MarkType.cmtBeg) { if (AItemNo < ARichData.Items.Count - 1) { HCCustomItem vItem = ARichData.Items[AItemNo + 1]; if ((vItem.StyleNo == this.StyleNo) && // 下一个是组标识) ((vItem as HCDomainItem).MarkType == MarkType.cmtEnd)) // 下一个是结束标识 { this.Width = 10; // 增加宽度以便输入时光标可方便点击 } else if (vItem.StyleNo > HCStyle.Null) { ARichData.Style.TextStyles[vItem.StyleNo].ApplyStyle(ARichData.Style.DefCanvas); this.Height = ARichData.Style.DefCanvas.TextHeight("H"); } } else { this.Width = 10; } } else // 域结束标识 { HCCustomItem vItem = ARichData.Items[AItemNo - 1]; if ((vItem.StyleNo == this.StyleNo) && ((vItem as HCDomainItem).MarkType == MarkType.cmtBeg)) { this.Width = 10; } else if (vItem.StyleNo > HCStyle.Null) { ARichData.Style.TextStyles[vItem.StyleNo].ApplyStyle(ARichData.Style.DefCanvas); this.Height = ARichData.Style.DefCanvas.TextHeight("H"); } } }
/// <summary> 当节中某Data有Item删除后触发 </summary> /// <param name="sender">在哪个文档节删除</param> /// <param name="aData">在哪个Data删除</param> /// <param name="aItem">已删除的Item</param> protected override void DoSectionRemoveItem(object sender, HCCustomData aData, HCCustomItem aItem) { if (aItem is DeItem) { DeItem vDeItem = aItem as DeItem; vDeItem.OnPaintBKG = DoDeItemPaintBKG; if (vDeItem.StyleEx != StyleExtra.cseNone) { FTraceCount--; if ((FTraceCount == 0) && (this.AnnotatePre.Visible) && (this.AnnotatePre.Count == 0)) { this.AnnotatePre.Visible = false; } } } base.DoSectionRemoveItem(sender, aData, aItem); }
public override void FormatToDrawItem(HCCustomData ARichData, int AItemNo) { if (this.AutoSize) { ARichData.Style.TextStyles[TextStyleNo].ApplyStyle(ARichData.Style.DefCanvas); SIZE vSize = ARichData.Style.DefCanvas.TextExtent(FText); Width = FMargin + CheckBoxSize + FMargin + vSize.cx; Height = Math.Max(vSize.cy, CheckBoxSize); } if (Width < FMinWidth) { Width = FMinWidth; } if (Height < FMinHeight) { Height = FMinHeight; } }
public override void FormatToDrawItem(HCCustomData aRichData, int aItemNo) { CalcTextSize(); if (this.AutoSize) { Width = FPaddingLeft + FTextSize.cx + FPaddingRight; // 间距 Height = FPaddingTop + FTextSize.cy + FPaddingBottom; } if (Width < FMinWidth) { Width = FMinWidth; } if (Height < FMinHeight) { Height = FMinHeight; } }
public override void FormatToDrawItem(HCCustomData aRichData, int aItemNo) { if (this.AutoSize) { aRichData.Style.ApplyTempStyle(TextStyleNo); SIZE vSize = aRichData.Style.TempCanvas.TextExtent(FText); Width = FPaddingLeft + CheckBoxSize + FPaddingLeft + vSize.cx; Height = Math.Max(vSize.cy, CheckBoxSize); } if (Width < FMinWidth) { Width = FMinWidth; } if (Height < FMinHeight) { Height = FMinHeight; } }
protected override void OnMouseDown(MouseEventArgs e) { FCaptureToolBar = null; if (!this.ReadOnly) { if (FUseTableTool && FTableToolBar.Visible && TableMouseDown(e)) { FCaptureToolBar = FTableToolBar; return; } if (FUseImageTool && FImageToolBar.Visible && ImageMouseDown(e)) { FCaptureToolBar = FImageToolBar; return; } } base.OnMouseDown(e); FTopData = this.ActiveSectionTopLevelData(); HCCustomItem vTopItem = FTopData.GetActiveItem(); SetActiveToolItem(vTopItem); HCCustomData vData = null; while (FActiveItem == null) { vData = FTopData.GetRootData(); if (vData == FTopData) { break; } FTopData = vData; vTopItem = FTopData.GetActiveItem(); SetActiveToolItem(vTopItem); } }
public override void FormatToDrawItem(HCCustomData aRichData, int aItemNo) { this.Width = 0; this.Height = aRichData.Style.TextStyles[0].FontHeight - aRichData.Style.LineSpaceMin; if (this.MarkType == MarkType.cmtBeg) { if (aItemNo < aRichData.Items.Count - 1) { HCCustomItem vItem = aRichData.Items[aItemNo + 1]; if (vItem.StyleNo == this.StyleNo && (vItem as HCAnnotateItem).MarkType == MarkType.cmtEnd) { this.Width = 10; } else if (vItem.ParaFirst) { this.Width = 10; } } else { this.Width = 10; } } else { HCCustomItem vItem = aRichData.Items[aItemNo - 1]; if (vItem.StyleNo == this.StyleNo && (vItem as HCAnnotateItem).MarkType == MarkType.cmtBeg) { this.Width = 10; } else if (this.ParaFirst) { this.Width = 10; } } }
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); } } } }