梦想CAD控件图层COM接口知识点

一、新建图层

主要用到函数说明:

_DMxDrawX::AddLayer

增加新的图层。详细说明如下:

参数

说明

BSTR pszName

图层名

c#中实现代码说明:

private void CreateLayer()

{

    // sNewLayerName新创建的图层名

    string sNewLayerName = "TestNewLayer";

    MxDrawApplication app = new MxDrawApplication();

 

    // 得到当前数据为的层表对象

    MxDrawLayerTable layerTable = app.WorkingDatabase().GetLayerTable();

 

    // 向层表中新增一个层表记录

    MxDrawLayerTableRecord layerTableRec = layerTable.Add(sNewLayerName);

 

    // 设置新图层的颜色。SetRGB

    MxDrawMcCmColor color = new MxDrawMcCmColor();

    color.SetRGB(255, 0, 0);

    layerTableRec.Color = color;

 

    // 把新建的层设置成当前层

    app.WorkingDatabase().CurrentlyLayerName = sNewLayerName;

}

js中实现代码说明:

function CreateLayer() {

    //增加新的图层

    var layerId = mxOcx.AddLayer("自定义图层");

    //返回控件的数据库对象

    var database = mxOcx.GetDatabase();

    //实体id返回实体对象

    var layer = database.ObjectIdToObject(layerId);

    //返回图层的颜色

    var newColor = layer.Color;

    //设置图层颜色

    newColor.SetRGB(255,0,0);

    //将设置的颜色赋值给图层

    layer.Color = newColor;

    //当前绘图函数的使用的图层名

    mxOcx.LayerName = "自定义图层";

    //当前控件绘图函数使用的CAD颜色索引值

    mxOcx.DrawCADColorIndex = 256;

}

二、隐藏图层

主要用到函数说明:

IMxDrawLayerTable::GetAt

得到层表中的图层对象。详细说明如下:

参数

说明

[in] BSTR pName

图层名称

[in,defaultvalue(TRUE) ] VARIANT_BOOL isGetErased

图层被删除掉,是否也能成功得到

c#中实现代码说明:

private void HideLayer()

{

    // 隐藏选择实体的层。

    MxDrawUtility mxUtility = new MxDrawUtility();

 

    MxDrawPoint getPt;

    MxDrawEntity ent = mxUtility.GetEntity(out getPt, "\n 选择要关闭图层的实体:");

    if (ent == null)

    {

        return;

    }

    string sLayerName = ent.Layer;

    MxDrawApplication app = new MxDrawApplication();

    //返回数据库中的层表对象

    MxDrawLayerTable layerTable = app.WorkingDatabase().GetLayerTable();

    //关闭指定图层 

    MxDrawLayerTableRecord layerTableRec = layerTable.GetAt(sLayerName, false);

    //返回图层是否处于关闭状态

    layerTableRec.IsOff = true;

}

js中实现代码说明:

function HideLayer() {

    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 layerTable = database.GetLayerTable();

    //得到层表中的图层对象

    var layerRec = layerTable.GetAt(txt, false);

    if (layerRec == null)

        return;

    //返回图层是否处于关闭状态

    layerRec.IsOff = true;

    alert("成功隐藏图层");

}

三、显示图层

主要用到函数说明:

IMxDrawLayerTable::GetAt

得到层表中的图层对象。详细说明如下:

参数

说明

[in] BSTR pName

图层名称

[in,defaultvalue(TRUE) ] VARIANT_BOOL isGetErased

图层被删除掉,是否也能成功得到

c#中实现代码说明:

private void ShowLayer()

{

    MxDrawApplication app = new MxDrawApplication();

    //返回数据库中的层表对象

    MxDrawLayerTable layerTable = app.WorkingDatabase().GetLayerTable();

    //创建一个遍历层表中所有图层的遍历器

    MxDrawLayerTableIterator iter = layerTable.NewIterator();

    if (iter == null)

        return;

    //移动当前遍历器位置

    for (; !iter.Done(); iter.Step(truefalse))

    {

        //返回遍历器当前位置的记录

        MxDrawLayerTableRecord layerTableRec = iter.GetRecord();

        //返回图层是否处于关闭状态

        layerTableRec.IsOff = false;

    }

}

js中实现代码说明:

function ShowLayer() {

    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 layerTable = database.GetLayerTable();

    //得到层表中的图层对象

    var layerRec = layerTable.GetAt(txt, false);

    if (layerRec == null)

        return;

    //返回图层是否处于关闭状态

    layerRec.IsOff = false;

    alert("成功显示图层");

}

四、得到所有图层名

主要用到函数说明:

IMxDrawLayerTableIterator::Step

得到层表中的图层对象。详细说明如下:

参数

说明

[in,defaultvalue(TRUE) ] VARIANT_BOOL forward

为ture向前移动一位,为false向后移动位

[in,defaultvalue(TRUE) ] VARIANT_BOOL skipDeleted

是否跳过删除的对象

c#中实现代码说明:

private void GetAllLayer()

{

    MxDrawApplication app = new MxDrawApplication();

    //返回数据库中的层表对象

    MxDrawLayerTable layerTable = app.WorkingDatabase().GetLayerTable();

    //创建一个遍历层表中所有图层的遍历器

    MxDrawLayerTableIterator iter = layerTable.NewIterator();

    if (iter == null)

        return;

    //所有图层名

    string sRet = null;

    //移动当前遍历器位置

    for (; !iter.Done(); iter.Step(truetrue))

    {

        //返回遍历器当前位置的记录

        MxDrawLayerTableRecord layerTableRec = iter.GetRecord();

        sRet = sRet + ',' + layerTableRec.Name;

    }

    MessageBox.Show(sRet);

}

js中实现代码说明:

function GetAllLayer() {

    var database = mxOcx.GetDatabase();

    // 得到所有图层名

    var sRet = null;

    //返回数据库中的层表对象

    var spLayerTable = database.GetLayerTable();

    //创建一个遍历层表中所有图层的遍历器

    var spIter = spLayerTable.NewIterator();

    //移动当前遍历器位置

    for(;!spIter.Done();spIter.Step(true,true))

    {

        //返回遍历器当前位置的记录

        var spLayerRec = spIter.GetRecord();

        //符号表记录名属性

        var sName = spLayerRec.Name;

        // 0零层不参加比较

        if(sName != "0")

        {

            if(sRet == null)

                sRet = sName;

            else

            {

                sRet = sRet +","+sName;

            }

        }

    }

    alert(sRet);

}

五、锁定所有图层

c#中实现代码说明:

private void LockeAllLayer()

{

    MxDrawDatabase database = (MxDrawDatabase)axMxDrawX1.GetDatabase();

    //返回数据库中的层表对象

    MxDrawLayerTable layerTable = database.GetLayerTable();

    //创建一个遍历层表中所有图层的遍历器

    MxDrawLayerTableIterator iter = layerTable.NewIterator();

    if (iter == null)

        return;

    //移动当前遍历器位置

    for (; !iter.Done(); iter.Step(truefalse))

    {

        //返回遍历器当前位置的记录

        MxDrawLayerTableRecord layerTableRec = iter.GetRecord();

        //返回图层是否处于锁定状态

        layerTableRec.IsLocked = true;

    }

    MessageBox.Show("锁定所有图层成功!");

}

js中实现代码说明:

  function LockeAllLayer() {

    //返回控件的数据库对象

    var database = mxOcx.GetDatabase();

    //返回数据库中的层表对象

     var layerTable = database.GetLayerTable();

    //创建一个遍历层表中所有图层的遍历器

    var iter = layerTable.NewIterator();

    for (; !iter.Done(); iter.Step())

    {

        //返回遍历器当前位置的记录

        var layerRec = iter.GetRecord();

        layerRec.IsLocked = true;

        alert("成功锁定图层");

    }

}

六、冻结图层

js中冻结图层实现代码说明:

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 layerTable = database.GetLayerTable();

var layerRec = layerTable.GetAt(txt, false);

if (layerRec == null)

    return;

layerRec.IsFrozen = true;

alert("成功冻结图层");

js中冻结全部图层实现代码说明:

    //返回控件的数据库对象

    var database = mxOcx.GetDatabase();

    //返回数据库中的层表对象

     var layerTable = database.GetLayerTable();

    //创建一个遍历层表中所有图层的遍历器

    var iter = layerTable.NewIterator();

    for (; !iter.Done(); iter.Step())

    {

        //返回遍历器当前位置的记录

        var layerRec = iter.GetRecord();

        layerRec.IsFrozen = true;

        alert("成功冻结所有图层");

 

    }

七、隐藏选择实体的图层

js中实现代码说明:

  // 隐藏选择实体的层。

var ent = mxOcx.GetEntity("选择要关闭图层的实体:");

if(ent == null)

{

    return;

}

if (ent == null)

{

    return;

}

var sLayerName = ent.Layer;

var database = mxOcx.GetDatabase();

var layerTable = database.GetLayerTable();

var layerTableRec = layerTable.GetAt(sLayerName, false);

if(layerTable != null)

{

    layerTableRec.IsOff = true;

}

八、设置图层亮度

主要用到函数说明:

MxDrawXCustomFunction::Mx_SetLayerBright

设置显示亮度,默认值为100%。详细说明如下:

参数

说明

LPCTSTR pszLayerName

图层名,为空,就设置所有图层

DOUBLE bright

亮度百分数,取值为0 ~100

LONG lisAutoUpDisplay

是否自动更新显示

c#中实现代码说明:

    MxDrawResbuf param = new MxDrawResbuf();     

    // 图层名     

    param.AddString("222");     

    // 图层亮度.

    param.AddDouble(50);     

    // 不自动调用更新函数。     

    param.AddLong(0);

    axMxDrawX1.CallEx("Mx_SetLayerBright", param);

js中实现代码说明:

var param = mxOcx.NewResbuf();

// 图层名

param.AddStringEx("222");

// 图层亮度.

param.AddDoubleEx(100);

// 不自动调用更新函数。

param.AddLongEx(0);

mxOcx.CallEx("Mx_SetLayerBright", param);

九、得到图层亮度

主要用到函数说明:

MxDrawXCustomFunction::Mx_GetLayerBright

返回图层亮度,默认值为100%。详细说明如下:

参数

说明

LPCTSTR pszLayerName

图层名,为空,就设置所有图层

c#中实现代码说明:

        MxDrawResbuf ret = (MxDrawResbuf)axMxDrawX1.Call("Mx_GetLayerBright", "0");        

        if (ret.AtString(0) == "Ok")

        {

            MessageBox.Show(ret.AtDouble(1).ToString());

        }

js中实现代码说明:

var ret = mxOcx.Call("Mx_GetLayerBright""0");

if (ret.AtString(0) == "Ok")

{

    alert(ret.AtDouble(1).toString());

}

十、设置图层颜色

主要用到函数说明:

IMxDrawMcCmColor::SetRGB

设置颜色的RGB色。详细说明如下:

参数

说明

[in] LONG lRed

红色

[in] LONG lGreen

绿色

[in] LONG lBlue

蓝色

js中实现代码说明:

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 layerTable = database.GetLayerTable();

var layerRec = layerTable.GetAt(txt, false);

if (layerRec == null)

    return;

//返回图层的颜色

var newColor = layerRec.Color;

//设置图层颜色

newColor.SetRGB(255,255,0);

//将设置的颜色赋值给图层

layerRec.Color = newColor;

alert("设置颜色成功");

十一、得到图层颜色

js中实现代码说明:

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 layerTable = database.GetLayerTable();

var layerRec = layerTable.GetAt(txt, false);

if (layerRec == null)

    return;

//返回图层的颜色

var newColor = layerRec.Color;

var layercolor=newColor.colorIndex;

alert(layercolor);

十二、设置图层线型

主要用到函数说明:

IMxDrawLayerTableRecord::LinetypeObjectId

返回图层的线型样式id。

js中实现代码说明:

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 layerTable = database.GetLayerTable();

var layerRec = layerTable.GetAt(txt, false);

if (layerRec == null)

    return;

//定义虚线数据据,"MyLineType"是线型名,"6,-8"是虚线的一个单位定义,6是实线长,-8是空格长。

var linetypeid = mxOcx.AddLinetype("MyLineType123""6,-10");

alert(linetypeid);

layerRec.LinetypeObjectId = linetypeid;

alert("设置图层线型成功");

设置线型后如下图所示:

十三、得到图层线型

主要用到函数说明:

IMxDrawLayerTableRecord::LinetypeObjectId

返回图层的线型样式id。

js中实现代码说明:

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 layerTable = database.GetLayerTable();

var layerRec = layerTable.GetAt(txt, false);

if (layerRec == null)

    return;

 var glinetype = layerRec.LinetypeObjectId;

 alert(glinetype);

十四、得到某图层的所有实体

主要用到函数说明:

IMxDrawSelectionSet::Select2

构造选择集。详细说明如下:

参数

说明

[in] MCAD_McSelect Mode

构造选择集方式

[in] VARIANT point1

构造择择集时需要使用到的点对象

[in] VARIANT point2

构造择择集时需要使用到的点对象

[in,optional] VARIANT filterType

构造选择集的过滤数据的类型

[in,optional] VARIANT filterData

构造选择集的过滤数据

可以取如下值

mcSelectionSetWindow = 0, mcSelectionSetCrossing = 1, mcSelectionSetFence = 2, mcSelectionSetPrevious = 3, mcSelectionSetLast = 4, mcSelectionSetAll = 5, 选择图面上的所有实体 mcSelectionSetWindowPolygon = 6, mcSelectionSetCrossingPolygon = 7, mcSelectionSetUserSelect = 8 mcSelectionImpliedSelectSelect = 9,_I 返回当前图上已经选择的实体

js中使用如下:

function SelectAssign() {

    //实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数。

    var ss = mxOcx.NewSelectionSet();

    //构造一个过滤链表

    var spFilte = mxOcx.NewResbuf();

    // "0",是图层名,8是DXF码,代表"0"是个图层字符串。

    // 选择 0层上的实体。

    spFilte.AddStringEx("0", 8);

    ss.Select2(5,nullnullnull,spFilte);

    for (var i = 0; i < ss.Count; i++)

    {

        var ent = ss.Item(i);

        alert(ent.ObjectName);

    }

}

得到指定层指定条件的实体:

function SelectAssign() {

    //实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数。

    var ss = mxOcx.NewSelectionSet();

    //构造一个过滤链表

    var spFilte = mxOcx.NewResbuf();

    // "0",是图层名,8是DXF码,代表"0"是个图层字符串。

    // 选择 0层上的实体。

    spFilte.AddStringEx("0", 8);

    // 选择直线或圆弧实体。5020是DXF码,代表"LINE"是类型字符串。

    spFilte.AddStringEx("LINE,ARC", 5020);

    // 选择红色的实体。1为颜色索引值,代表红色。 62是DXF码,但1是个颜色类型。

    spFilte.AddLongEx(1,62);

    ss.Select2(5,nullnullnull,spFilte);

    for (var i = 0; i < ss.Count; i++)

    {

        var ent = ss.Item(i);

        alert(ent.ObjectName);

    }

}

十五、将图层设置为当前层

js中实现代码如下:

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 layerTable = database.GetLayerTable();

var layerRec = layerTable.GetAt(txt, false);

if (layerRec == null)

    return;

//符号表记录名属性

var sName = layerRec.Name;

database.CurrentlyLayerName = sName;

alert("设置图层为当前层成功");

梦想CAD控件图层COM接口知识点的更多相关文章

  1. 梦想CAD控件文字COM接口知识点

    一.参数绘制文字 在CAD设计时,需要绘制文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawText 绘制一个单行文字.详细说明如下: 参数 说明 DOU ...

  2. 梦想CAD控件事件COM接口知识点

    一.鼠标事件 _DMxDrawXEvents::MouseEvent 控件中的鼠标事件. 参数 说明 LONG lType 事件类型,1鼠标移动,2是鼠标左键按下,3是鼠标右键按下,4是鼠标左键双击 ...

  3. 梦想CAD控件图块COM接口知识点

    梦想CAD控件图块COM接口知识点 图块是将多个实体组合成一个整体,并给这个整体命名保存,在以后的图形编辑中图块就被视为一个实体.一个图块包括可见的实体如线.圆.圆弧以及可见或不可见的属性数据.图块的 ...

  4. 如何在网页中浏览和编辑DWG文件 梦想CAD控件

    如何在网页中浏览和编辑DWG文件 梦想CAD控件 www.mxdraw.com 梦想绘图控件5.2  是国内最强,最专业的CAD开发组件(控件),不需要AutoCAD就能独立运行.控件使用VC 201 ...

  5. 梦想CAD控件COM接口自定义命令

    在CAD软件操作中,为方便使用者,使用自定义命令发出命令,完成CAD绘图,修改,保存等操作.点击此处下载演示实例. _DMxDrawX::RegistUserCustomCommand 向CAD控件注 ...

  6. 梦想CAD控件,用于浏览和编辑DWG文件,在脱离AUTOCAD的情况下独立运行,相当于简易CAD

    (百度百科连接) 梦想绘图控件5.2  是国内最强,最专业的CAD开发组件(控件),不需要AutoCAD就能独立运行.控件使用VC 2010开发,最早从2007年第一个版本完成,经过多年的累积已经非常 ...

  7. 梦想CAD控件安卓参数绘图

    在CAD绘图中,参数化绘图可以帮助我们极大缩短设计时间,用户可以按照设计意图控制绘图对象,这样即使对象发生了变化,具体的关系和测量数据仍将保持不变,能够对几何图形和标注进行控制,可以帮助用户应对耗时的 ...

  8. 梦想CAD控件网页版搜索图面上的文字

    在网页中查找到CAD控件图纸上的文字.点击此处在线演示. 主要用到函数说明: _DMxDrawX::NewSelectionSet 实例化一个构造选择集进行过滤,该类封装了选择集及其处理函数. _DM ...

  9. 梦想CAD控件网页版关于自定义命令

    在CAD控件操作中,为方便使用者,使用自定义命令发出命令,完成CAD绘图,修改,保存等操作.点击此处在线演示. _DMxDrawX::RegistUserCustomCommand 向CAD控件注册一 ...

随机推荐

  1. Python爬虫(一):基本概念

    网络爬虫的定义          网络爬虫(Web Spider.又被称为网页蜘蛛.网络机器人,又称为网页追逐者),是一种依照一定的规则,自己主动的抓取万维网信息的程序或者脚本.另外一些不常使用的名字 ...

  2. 【Struts2五】ValueStack以及ognl表达式二(经常使用标签)

    Ognl经常使用标签:   1.s:debug       假设把该标签放入到s:iterator中能够看到当前正在迭代的元素的状态    2.s:property       1.输出       ...

  3. msyql索引详解

    一.mysql查询表索引命令两种形式 1.mysql>SHOW INDEX FROM 'biaoming' 2.mysql>SHOW keys FROM 'biaoming' 运行结果如下 ...

  4. 动态JSP的了解

    一.JSP与HTML的根本区别 1..JSP(Java Server Page)页面是动态页,JSP页面是有JSP容器执行该页面的Java代码部分然后实时生成的HTML页面,因而说是动态页面.2..H ...

  5. 使用 Code Map 理解复杂代码1 ——Visual Studio2012

    第一次知道code map是在Visual Studio Ultimate 2012自带的解说上面,当时认为十分好奇,所以查了查.结果一查就是好几天.原来Visual Studio Ultimate  ...

  6. bzoj 4883 棋盘上的守卫 —— 基环树转化

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4883 首先,注意到每个点可横可竖,但花费一样: 所以考虑行列的交集,那么这个条件可以转化为行 ...

  7. bzoj4818

    http://www.lydsy.com/JudgeOnline/problem.php?id=4818 矩阵快速幂+dp 首先我们来写一个dp dp[i][j]:选到第i个数,和为j,复杂度nm,不 ...

  8. 基于JWT机制的单点登录

    使用JWT实现单点登录时,需要注意token时效性.token是保存在客户端的令牌数据,如果永久有效,则有被劫持的可能.token在设计的时候,可以考虑一次性有效或一段时间内有效.如果设置有效时长,则 ...

  9. Controller控制器的使用

    如果不加@Controller注解,浏览器它是无法访问到的.@RequestMapping通过某个URL访问到我们写的方法

  10. 19_传智播客iOS视频教程_类和对象

    什么是类?什么是对象? 看的见.摸的着.拿过来就可以直接使用.例如报纸就是一个对象. 学生这个东西可不可以只是指一个?就只有那一个才是学生.不是的,学生是有很多个的.它是对一类人的统称.类是统称.所以 ...