js中实现代码说明:

动态拖放时的绘制事件:

function DynWorldDrawComment( pCustomEntity, pWorldDraw, curPt) {
// 得到绘制参数. var sText = pCustomEntity.GetString("Text");
var dTextHeight = pCustomEntity.GetDouble("TextHeight");
var iEdgeNumber = pCustomEntity.GetLong("EdgeNumber");
var dShapRadius = pCustomEntity.GetDouble("ShapRadius");
// 创建一个批注对象.
var comment = mxOcx.NewEntity("IMxDrawComment");
comment.Text = sText;
comment.TextHeight = dTextHeight;
comment.EdgeNumber = iEdgeNumber;
comment.ShapRadius = dShapRadius;
comment.basePoint = curPt;
comment.Position = curPt;
pWorldDraw.TextStyle = "MyCommentFont";
// 动态绘制.
pWorldDraw.DrawEntity(comment);
}

动态绘制文字:

function  DynWorldDrawComment2( pCustomEntity,pWorldDraw,  curPt) {
// 得到绘制参数. var sText = pCustomEntity.GetString("Text");
var dTextHeight = pCustomEntity.GetDouble("TextHeight");
var iEdgeNumber = pCustomEntity.GetLong("EdgeNumber");
var dShapRadius = pCustomEntity.GetDouble("ShapRadius");
var basePoint = pCustomEntity.GetPoint("BasePoint");
// 创建一个批注对象.
var comment = mxOcx.NewEntity("IMxDrawComment");
comment.Text = sText;
comment.TextHeight = dTextHeight;
comment.EdgeNumber = iEdgeNumber;
comment.ShapRadius = dShapRadius;
comment.basePoint = basePoint;
comment.Position = curPt;
// 设置文字样式。
pWorldDraw.TextStyle = "MyCommentFont";
// 动态绘制.
pWorldDraw.DrawEntity(comment);
}

动态绘制文字:

function DoComment() {
// 出来一个对象,让用户输入文字.
var winWidth = 440;
var winHeight = 140;
var winLeft = (screen.width - winWidth) / 2;
var winTop = (screen.height - winHeight) / 2 - 20;
var str = 'dialogHeight:' + winHeight + 'px;dialogWidth:' + winWidth + 'px;dialogTop:' + winTop + 'px;dialogLeft:' + winLeft + 'px;resizable:yes;center:yes;status:no;'
var rt = window.showModalDialog("Gettext.htm?tmp=" + Math.random(), "输入文字", str);
var txt;
if (typeof (rt) == "undefined") {
return;
} else {
var arr = rt.split(",");
txt = arr[0];
}
// 加入换行操作符\\P
//txt = txt + "\\PTEST";
// 创建一个文字样式,用于批注文字字体.
mxOcx.AddTextStyle2("MyCommentFont","黑体",0.7);
// 创建一个与用户交互取点的对象。
var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
getPt.message = "输入标注插入基点";
// 开始取第一个点。
if (getPt.go() != 1)
return;
// 创建一个与用户交互取点的对象。
var getSecondPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
getSecondPt.message = "输入标注位置点";
getSecondPt.basePoint = getPt.value();
getSecondPt.setUseBasePt(false);
spDrawData = getSecondPt.InitUserDraw("DrawComment2");
// 设置动态绘制参数.
spDrawData.SetPoint("BasePoint", getPt.value());
spDrawData.SetString("Text", txt);
spDrawData.SetDouble("TextHeight", 100);
spDrawData.SetLong("EdgeNumber", 0);
spDrawData.SetDouble("ShapRadius", 300);
// 开始取第二个点。
if (getSecondPt.go() != 1)
return;
var ret = spDrawData.Draw();
// 设置绘制的批注文字样式。
for (var i = 0; i < ret.Count; i++)
{
var ent = ret.AtObject(i);
ent.TextStyle = "MyCommentFont";
ent.colorIndex = 4;
}
}

最新文章

  1. ITTC数据挖掘系统(六)批量任务,数据查看器和自由文档
  2. Orcle常用语句
  3. SQL触发器中的deleted表和inserted表
  4. Swift 必备开发库 (高级篇)
  5. 1.C#中几个简单的内置Attribute
  6. centos如何安装软件
  7. Java学习第三篇:类的三大特征,抽象类,接口,final关键字
  8. jqGrid简单介绍
  9. Ubuntu下安装Wine&amp;WineQQ+Phpstorm+wps+svn+vim(计划任的使用)+flashplayer+curl扩展
  10. QT学习 之 文本文件读写
  11. Android与javascript中事件分发机制的简单比较
  12. 百度地图API显示多个标注点带百度样式信息检索窗口的代码
  13. Oracle day04 DML_事务_序列_视图_数据类型_DDL
  14. Android 屏幕适配插件 ScreenMatch
  15. 「luogu1417」烹调方案
  16. python 管道 事件(Event) 信号量 进程池(map/同步/异步)回调函数
  17. iOS:苹果内购实践
  18. stark组件base.html
  19. Installing Oracle Database 12c Release 2(12.2) RAC on RHEL7.3 in Silent Mode
  20. Solr7.2的安装与使用

热门文章

  1. UVaLive 3971 Assemble (水题二分+贪心)
  2. Eclipse 安装Maven插件
  3. liteos任务(二)
  4. Qt中csv文件的导入与导出
  5. BAT或赌在当下或押在未来,谁是王者?
  6. android studio ffmpeg简单使用 (cmake)
  7. Java | 基础归纳 | 随机数应用
  8. 三维BFS Poj 2251
  9. 洛谷P3177||bzoj4033 [HAOI2015]树上染色
  10. CentOS Linux 搭建 SVN(CollabNet Subversion)服务器