增加线型
主要用到函数说明:
_DMxDrawX::AddLinetype
增加一个线型定义。详细说明如下:
BSTR pszName | 线型名 |
BSTR pszLineDefine | 线定义字符串 |
用户可以增加线型到数据库,具体实现js代码如下:
//新建一个线型
function CreateLineType() {
//定义虚线数据据,"MyLineType"是线型名,"6,-8"是虚线的一个单位定义,6是实线长,-8是空格长。
var linetypeId= mxOcx.AddLinetype("MyLineType3", "6,-10");
//返回控件的数据库对象
var database = mxOcx.GetDatabase();
//实体id返回实体对象
var linetype = database.ObjectIdToObject(linetypeId);
//设计当前线型为"MyLineType"
database.CurrentlyLineTypeName = "MyLineType3";
alert("添加成功");
}
用户可以增加一个点划线虚线线型到数据库,具体实现js代码如下:
function CreateLineType1() { var linetypeId= mxOcx.AddLinetype("MyLineType1", "10,-2,3,-2");
//返回控件的数据库对象
var database = mxOcx.GetDatabase();
//实体id返回实体对象
var linetype = database.ObjectIdToObject(linetypeId);
//设计当前线型为"MyLineType1"
database.CurrentlyLineTypeName = "MyLineType1";
alert("添加成功");
}
用户可以增加一个带有形的线型到数据库。
主要用到函数说明:
_DMxDrawX::AddTextStyle1
向数据库中增加一个文字样式。详细说明如下:
BSTR pszName | 文字样式名称 |
BSTR pszFileName | shx文件名 |
BSTR pszBigFontFileName | big shx文件名 |
DOUBLE dXScale | 文字宽度缩放比例 |
_DMxDrawX::AddLinetypeEx
增加一个带文字的复杂线型。详细说明如下:
BSTR pszName | 线型名 |
BSTR pszLineDefine | 线型定义字符串 |
BSTR pszTextStyle | 线型中的文字样式 |
具体实现js代码如下:
function CreateLineType2() {
//增加一个带有形的线型
mxOcx.AddTextStyle1("MyLineTypeTextStyle", "txt.shx", "hztxt.shx", 1);
var linetypeId= mxOcx.AddLinetypeEx ("MyLineType2", "(12.7,(\"T=MxDraw\",\"S=2.54\",\"L=-5.08\",\"R=0.0\"," +
"\"X=-2.54\",\"Y=-1.27\"),-10.08)","MyLineTypeTextStyle");
//返回控件的数据库对象
var database = mxOcx.GetDatabase();
//实体id返回实体对象
var linetype = database.ObjectIdToObject(linetypeId);
//设计当前线型为"MyLineType2"
database.CurrentlyLineTypeName = "MyLineType2";
alert("添加成功");
}
得到线型名
用户可以得到所有线型名,具体实现js代码如下:
function GetAllLineType() {
var database = mxOcx.GetDatabase();
// 得到所有图层名
var sRet = null;
//返回数据库中的线型表对象
var spLinetypeStyleTable = database.GetLinetypeTable();
//创建一个遍历所有线型的遍历器
var spIter = spLinetypeStyleTable.NewIterator();
//移动当前遍历器位置
for(;!spIter.Done();spIter.Step(true,true))
{
//返回遍历器当前位置的记录
var spLinetypeStyleTableRec = spIter.GetRecord();
//符号表记录名属性
var sName = spLinetypeStyleTableRec.Name;
// 0零层不参加比较
if(sName != "0")
{
if(sRet == null)
sRet = sName;
else
{
sRet = sRet +","+sName;
}
}
}
alert(sRet);
}
删除线型
用户可以得到删除某个线型,具体实现js代码如下:
function DelLineType() {
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];
}
var database = mxOcx.GetDatabase();
//返回数据库中的线型表对象
var LinetypeStyleTable = database.GetLinetypeTable();
//得到线型表中的线型对象
var LinetypeStyleRec = LinetypeStyleTable.GetAt(txt, false);
if (LinetypeStyleRec == null)
return;
//删除对象
LinetypeStyleRec.Erase();
alert("成功删除线型");
mxOcx.Regen();
}