本帖最后由 MxDraw 于 2019-5-24 09:19 编辑
增加文字样式
用户可以增加文字样式到数据库,并设置其字体等属性,具体实现js代码如下: - function CreateText(){
- //返回控件的数据库对象
- var database =mxOcx.GetDatabase();
- //返回数据库中的文字样式表对象
- var mxtst = database.GetTextStyleTable();
- //增加新的文字样式
- var mxtstr = mxtst.Add("duanceng");
- //设置样式
- //设置文字的TrueType字体,如果文字样式设置了TrueType字体,就不会使用前面设置shx字体
- //参数一为turetype字体名 参数二为是否粗写 参数三为是否斜写 参数四为windows字符集 参数五暂没使用
- mxtstr.SetFont("黑体", false, false, 0, 0);
- //返回文字的高度
- mxtstr.textSize = 5;
-
- //增加新的文字样式
- var mxtstr = mxtst.Add("duanceng1");
- //设置样式
- //设置文字的TrueType字体,如果文字样式设置了TrueType字体,就不会使用前面设置shx字体
- //参数一为turetype字体名 参数二为是否粗写 参数三为是否斜写 参数四为windows字符集 参数五暂没使用
- mxtstr.SetFont("黑体", false, false, 0, 0);
- //返回文字的高度
- mxtstr.textSize = 9;
- //返回数据库中的文字样式表对象
- //设置为当前文字样式
- database.CurrentlyTextStyle = "duanceng";
- }
复制代码
得到文字样式名
用户可以得到所有文字样式名,具体实现js代码如下: - function GetAllText() {
- var database = mxOcx.GetDatabase();
- // 得到所有图层名
- var sRet = null;
- //返回数据库中的文字样式表对象
- var spTextStyleTable = database.GetTextStyleTable();
- //创建一个遍历层表中所有图层的遍历器
- var spIter = spTextStyleTable.NewIterator();
- //移动当前遍历器位置
- for(;!spIter.Done();spIter.Step(true,true))
- {
- //返回遍历器当前位置的记录
- var spTextStyleRec = spIter.GetRecord();
- //符号表记录名属性
- var sName = spTextStyleRec.Name;
- // 0零层不参加比较
- if(sName != "0")
- {
- if(sRet == null)
- sRet = sName;
- else
- {
- sRet = sRet +","+sName;
- }
- }
- }
- alert(sRet);
- }
复制代码
删除文字样式
用户可以删除某个文字样式,具体实现js代码如下: - function DelText() {
- 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 TextStyleTable = database.GetTextStyleTable();
- //得到层表中的文字样式表对象
- var TextStyleRec = TextStyleTable.GetAt(txt, false);
- if (TextStyleRec == null)
- return;
- //删除对象
- TextStyleRec.Erase();
- alert("成功删除文字样式");
- }
复制代码
|