InsertCtrl 질문

안녕하세요.
InsertCtrl 매서드를 이용하여 사각형을 그리는 매크로 코드입니다.
크기 적용이 안될 뿐더러
ctrl+n, k로 개체 속성창을 띄워서 크기를 수정해도 반영이 안되네요.

무엇이 잘못된 건지 봐 주세요.

function OnScriptMacro_script2()
{
	var set = CreateSet("ShapeObject");
	set.SetItem("TreatAsChar", 0);
	set.SetItem("TextWrap", 1);
	set.SetItem("TextFlow", 0);
	set.SetItem("VertRelTo", 0);
	set.SetItem("HorzRelTo", 0);
	set.SetItem("VertAlign", 0);
	set.SetItem("HorzAlign", 0);
	set.SetItem("WidthRelTo", 4);
	set.SetItem("HeightRelTo", 2);
	set.SetItem("VertOffset", 20);
	set.SetItem("HorzOffset", 30);
	set.SetItem("Height", 600);
	set.SetItem("Width", 500);
	InsertCtrl("$rec", set);
}

Animation

1개의 좋아요

안녕하세요.

한글의 그리기 개체는 점으로 구성되어 있어서 ShapeDrawLayOut 서브셋 속성을 추가로 삽입되어야 합니다.
아래는 사각형 그리기 개체를 삽입하는 예제 입니다. (매크로 이용)

  HAction.GetDefault("DrawObjCreatorRectangle", HParameterSet.HShapeObject.HSet);
  with (HParameterSet.HShapeObject)
  {
      ShapeDrawFillAttr.Type = BrushType("NullBrush|WinBrush");
      ShapeDrawFillAttr.WinBrushAlpha = 0;
      ShapeDrawFillAttr.WinBrushFaceStyle = HatchStyle("None");
      ShapeDrawFillAttr.WinBrushHatchColor = RGBColor(0, 0, 0);
      ShapeDrawFillAttr.WinBrushFaceColor = RGBColor(255, 255, 255);
      ShapeDrawLineAttr.Alpha = 0;
      ShapeDrawLineAttr.OutLineStyle = HwpOutLineStyle("Normal");
      ShapeDrawLineAttr.TailFill = 1;
      ShapeDrawLineAttr.HeadFill = 1;
      ShapeDrawLineAttr.TailSize = EndSize("MediumMedium");
      ShapeDrawLineAttr.HeadSize = EndSize("MediumMedium");
      ShapeDrawLineAttr.EndCap = 1;
      ShapeDrawLineAttr.TailStyle = EndStyle("Normal");
      ShapeDrawLineAttr.HeadStyle = EndStyle("Normal");
      ShapeDrawLineAttr.Width = MiliToHwpUnit(0.1);
      ShapeDrawLineAttr.Style = HwpLineType("Solid");
      ShapeDrawLineAttr.Color = RGBColor(0, 0, 0);
      ShapeDrawLayOut.CreateItemArray("CreatePt", 8);
      ShapeDrawLayOut.CreatePt.Item(0) = 0;
      ShapeDrawLayOut.CreatePt.Item(1) = 0;
      ShapeDrawLayOut.CreatePt.Item(2) = 20409;
      ShapeDrawLayOut.CreatePt.Item(3) = 0;
      ShapeDrawLayOut.CreatePt.Item(4) = 20409;
      ShapeDrawLayOut.CreatePt.Item(5) = 20409;
      ShapeDrawLayOut.CreatePt.Item(6) = 0;
      ShapeDrawLayOut.CreatePt.Item(7) = 20409;
      ShapeDrawLayOut.CreateNumPt = 4;
      TreatAsChar = 0;
      TextWrap = TextWrapType("TopAndBottom");
      VertOffset = MiliToHwpUnit(0.0);
      VertAlign = VAlign("Top");
      VertRelTo = VertRel("Paper");
      HorzOffset = MiliToHwpUnit(0.0);
      HorzAlign = HAlign("Justify");
      HorzRelTo = HorzRel("Paper");
      HeightRelTo = HeightRel("Absolute");
      Height = 20409;
      WidthRelTo = WidthRel("Absolute");
      Width = 20409;
      NumberingType = Numbering("Figure");
      TextFlow = TextFlowType("BothSides");
      AdjustTextbox = 0;
      ShapeCreationMode = 0;
      ShapeCreationType = 1;
  }
  HAction.Execute("DrawObjCreatorRectangle", HParameterSet.HShapeObject.HSet);

감사합니다.

2개의 좋아요