简介工具栏菜单栏标尺栏属性栏命令栏模型栏状态栏浏览模式切换视区返回当前图纸的最小外包矩形框返回当前视区坐标返回当前视区坐标的文档坐标值在菜单栏添加一个按钮在工具条添加一个按钮
简介

控件界面上所有元素都可以控制显示或隐藏,点击此处在线演示。下面逐一介绍,控件界面上的元素位置如下图:


view.png

工具栏

控件界面工具栏的显示或隐藏,js代码实现如下:


//隐藏/显示工具栏
function HideToolbar()
{
    mxOcx.ShowToolBar("常用工具",isShow);
    mxOcx.ShowToolBar("绘图工具",isShow);
    mxOcx.ShowToolBar("编辑工具",isShow);
    mxOcx.ShowToolBar("特性",isShow);
    mxOcx.ShowToolBar("ET工具",isShow);

    isShow = !isShow;
}


隐藏工具栏效果如下:


toolbar.png


隐藏或显示工具条上的按钮


主要用到函数说明:


_DMxDrawX::HideToolBarControl


隐藏或显示工具条上的按钮,成功返回TRUE。详细说明如下:


参数说明

BSTR pszToolBarName  

工具条名称

BSTR pszControlName

按钮名称,多个按钮名称,可以用逗号分隔开,为空,隐藏或显示所有按钮

VARIANT_BOOL isHide

是否隐藏按钮

VARIANT_BOOL isAutoRecalcLayout

是否自动重新布局窗口上的工具条


例如隐藏绘图工具栏上的绘线和绘矩形框按钮js中实现代码说明:


 mxOcx.HideToolBarControl("绘图工具","绘线,绘矩形框",true,true);


MxDrawXCustomFunction::Mx_HideToolBarControl


隐藏或显示工具条上的按钮,成功返回TRUE。详细说明如下:


参数说明

IN LPCTSTR pszToolBarName

工具条名称

IN LPCTSTR pszControlName = NULL

按钮名称,多个按钮名称,可以用逗号分隔开,为空,隐藏或显示所有按钮

IN BOOL isHide = TRUE

是否隐藏按钮

IN BOOL isAutoRecalcLayout = TRUE

是否自动重新布局窗口上的工具条


例如隐藏常用工具栏上的保存,保存为mxg文件,另存为dwg文件按钮js中实现代码说明:


var param = mxOcx.Call("Mx_NewResbuf","");
param.AddString("常用工具");
param.AddString("保存,保存为mxg文件,另存为dwg文件");
mxOcx.CallEx("Mx_HideToolBarControl", param);


禁用或激活控件工具条上的某个命令按钮


主要用到函数说明:


_DMxDrawX::EnableToolBarButton


禁用或激活控件工具条上的某个命令按钮。详细说明如下:


参数说明

BSTR pButtonName

工具条中的按钮名称

VARIANT_BOOL isEnable

是否禁用


例如页中禁用打开按钮代码:


document.getElementById("MxDrawOcxCtrl").EnableToolBarButton("打开dwg文件",0);
菜单栏

控件界面菜单栏的显示或隐藏,js代码实现如下:


//隐藏/显示菜单栏
function HideMenuBar()
{

    mxOcx.ShowMenuBar(isShow);
    isShow = !isShow;
}


隐藏菜单栏效果如下:


menubar.png


主要用到函数说明:


_DMxDrawX::HideMenuBarControl


隐藏或显示工具条上的按钮,成功返回TRUE。详细说明如下:


参数 说明

VARIANT_BOOL isHide

是否隐藏按钮

sControlName

按钮名称,多个按钮名称,可以用逗号分隔开,为空,隐藏或显示所有按钮

标尺栏

控件界面标尺栏的显示或隐藏,js代码实现如下:


//隐藏/显示标尺栏
function HideRulerWindow()
{

    mxOcx.ShowRulerWindow(isShow);
    isShow = !isShow;
}


隐藏标尺栏效果如下:


RulerWindow.png

属性栏

控件界面属性栏的显示或隐藏,js代码实现如下:


//隐藏/显示属性栏
function HidePropertyWindow()
{

    mxOcx.ShowPropertyWindow(isShow);
    isShow = !isShow;
}


隐藏属性栏效果如下:


PropertyWindow.png

命令栏

控件界面命令栏的显示或隐藏,js代码实现如下:


//隐藏/显示命令栏
function HideCommandWindow()
{

    mxOcx.ShowCommandWindow(isShow);
    isShow = !isShow;
}


隐藏命令栏效果如下:


CommandWindow.png

模型栏

控件界面模型栏的显示或隐藏,js代码实现如下:


//隐藏/显示模型栏
function HideModelBar()
{

    mxOcx.ShowModelBar(isShow);
    isShow = !isShow;
}


隐藏模型栏效果如下:


ModelBar.png

状态栏

控件界面状态栏的显示或隐藏,js代码实现如下:


//隐藏/显示状态栏
function HideStatusBar()
{

    mxOcx.ShowStatusBar(isShow);
    isShow = !isShow;
}


隐藏状态栏效果如下:


StatusBar.png

浏览模式切换

控件界面浏览模式切换,js代码实现如下:


//模式切换
var isBrowner = false;
function BrownerMode() {
    isBrowner = !isBrowner;
    mxOcx.BrowseMode = isBrowner;
    mxOcx.ShowMenuBar = !isBrowner;
    mxOcx.ShowPropertyWindow = !isBrowner;
}


浏览模式切换效果如下:


BrownerMode.png

视区

设置设置视区背景色


JS把背景色变成红色= 123,绿色=55,蓝色=78,颜色值是由(0xFF FF FF)6位的16进制数据组成,分别代表示(0x红,绿,蓝),比如要设置颜色: 红色= 123,绿色=55,蓝色=78的颜色。


123= 0x7B, 55=0x37, 78=0x4E


也就是0x7B 37 4E, 0x7B374E = 8075086。所以设置ViewColor =8075086:


<param name="ViewColor" value="8075086">


设置视区背景色为渐变色


设置背景为渐变色填充,RGB是填充的渐变色,标记为 0,不使用渐变填充颜色,1使用渐变填充颜色。


axMxDrawX1.Iniset = "ViewGradientColor=" + "255" + ";1";
axMxDrawX1.ViewColor = Color.FromArgb(10, 22, 200, 0);


返回当前图纸的最小外包矩形框

js代码实现如下:


var pRet =mxOcx.Call("Mx_GetMcDbDatabaseBound", "");

if (pRet.AtString(0) == "Ok") {
    alert(
        "LBx:" + pRet.AtDouble(1) +
        "LBy:" + pRet.AtDouble(2) +
        "Rtx:" + pRet.AtDouble(3) +
        "Rty:" + pRet.AtDouble(4));
}
else {
    alert("调用失败");
}
返回当前视区坐标

js代码实现如下:


var pRet = mxOcx.CallLongParam1("Mx_GetViewCoord", 1);

if (pRet.AtString(0) == "Ok") {
    alert(
        "LBx:" + pRet.AtDouble(1) +
        "LBy:" + pRet.AtDouble(2) +
        "Rtx:" + pRet.AtDouble(3) +
        "Rty:" + pRet.AtDouble(4));
}
else {
    alert("调用失败");
}
返回当前视区坐标的文档坐标值

js代码实现如下:


var pRet = mxOcx.Cal("Mx_GetViewCoord");

if (pRet.AtString(0) == "Ok") {
    alert(
        "LBx:" + pRet.AtDouble(1) +
        "LBy:" + pRet.AtDouble(2) +
        "Rtx:" + pRet.AtDouble(3) +
        "Rty:" + pRet.AtDouble(4));
}
else {
    alert("调用失败");
}
在菜单栏添加一个按钮

1、新建菜单文件


新建一个文本文件: mxcad.mnu,内容如下:


定一个菜单按钮,按钮名为自定义新建,图标从服务器上加载,图标名为mytoolbar.bmp,按钮点击执行命令,命令id为100。


// 菜单条文件头说明.
// "文件类型字符串" "资源文件名" "透明颜色" "位置,可以是:top,left,bottom,right" "是否可以浮动,Y \N "
"MxDrawMenuBarFile" "MxDraw.dll" (214 211 206) "top" "主菜单" "Y"

// 菜单内容说明
// "命令名称"  "命令" "图标索引字符串" "资源文件名" "命令提示字符串" "命令ID"  "ID类型" 
"POPMENUS" "文件(&F)"
"自定义新建(&N)1" "" "IDB_NEW_BITMAP" "web:mytoolbar.bmp"   "" "100" "ID_NEW_BUTTOM"
"自定义新建(&N)2" "" "IDB_NEW_BITMAP" "web:mytoolbar.bmp"   "" "100" "ID_NEW_BUTTOM"
"自定义新建(&N)3" "" "IDB_NEW_BITMAP" "web:mytoolbar.bmp"   "" "100" "ID_NEW_BUTTOM"
"新建(&N)" "Mx_New" "IDB_NEW_BITMAP" "MxEdit.mrx"  "" "" "ID_NEW_BUTTOM"
"打开(&O)" "Mx_OpenMxg" "IDB_OPENMXG_BITMAP" "" "" "" "ID_OPEN_BUTTOM"
"打开DWG文件(&M)" "OpenDwg" "IDB_OPENDWG_BITMAP" "" "" ""  "ID_OPENDWG_BUTTOM"
"SEPARATOR"
"最近文件(&X)" "Mc_Empty" "" "" "" "" "ID_FILE_MRU_FILE1"
"SEPARATOR"
"退出(&X)" "Mc_Empty" "" "" "" "" "ID_APP_EXIT"
"POPMENUE"


2、把文件上传到服务器


把mxcad.mnu, mytoolbar.bmp文件放到服务器上,并放在同一个目录下,保证能直接从ie中访问。


3、Js程序里引用菜单


菜单文件放在当前网页目录下。


<param name="Iniset" value="MenuFile=./mxcad.mnu">


4、响应命令执行事件,如下:


function DoCommandEventFunc(iCmd)
{
    if (iCmd == 100) {
        //该函数在mxcustom.js中 
        alert("菜单按钮点击");
}
}


document.getElementById("MxDrawXCtrl").ImplementCommandEventFun = DoCommandEventFunc;


效果如下:


mnuebar.png

在工具条添加一个按钮

修改MxDraw-ToolBar.mxt文件,:


// 如下,是从工具条所在本地目录的bmp加载,local:表示是个本地的bmp
("自定义打文件按钮" "自定义打文件按钮" "Mx_OpenMxg" "" "" "local:mytoolbar.bmp")
("自定义打文件按钮" "自定义打文件按钮" "Mx_OpenMxg" "" "" "local:mytoolbar.bmp")



改成:


// 如下,是从工具条所在网络目录的bmp加载,web:表示是网上加载
("自定义打文件按钮" "自定义打文件按钮" "Mx_OpenMxg" "" "" "web:mytoolbar.bmp")
("自定义打文件按钮" "自定义打文件按钮" "" "" "" "local:mytoolbar.bmp" "100")


效果如下,多了两个按钮了,用户可以给增加的按钮添加自定义命令。


toolbarb.png

梦想CAD是专业的CAD插件(控件),可轻松在网页、手机及BS/CS程序中浏览编辑DWG文件,不需安装AutoCAD即可运行。经十余年累积已非常稳定可靠,有关键的空间搜索算法,并使用汇编优化,可同时处理50万级实体,有非常高的图形显示和处理效率。
技术服务
TEL:400-888-5703
185-8173-1060
客服I QQ: 3570505660
技术I QQ: 827867134
技术II QQ:6884123
产品购买
TEL:156-8136-8971
QQ:710714273
用户交流
控件QQ交流群1:73281982
控件QQ交流群2:112199959
MxCAD软件群 1:515771658
技术I:QQ
827867134
客服I:QQ
3570505660
销售QQ
710714273
联系电话400-888-5703