返回介绍

工具栏

发布于 2023-08-09 23:10:33 字数 15523 浏览 0 评论 0 收藏 0

显示或隐藏接口

显示或隐藏所有工具条:

C++MxDraw::ShowToolBars
COM接口ocx的属性, ShowToolBars

例如JS语言隐藏工具条:

<param name="ShowToolBars" value="0">

显示或隐藏指定工具条, 工具条名称会在后面的工具条文件格式中说明。

C++MxDraw::ShowToolBar
COM接口_DMxDrawX::ShowToolBar

MxDraw::ShowToolBar 方法

接口:

static BOOL ShowToolBar(IN MXDRAWOCXHANDLE hOcx, IN const CString& sToolBarName, BOOL isShow);

参数:

参数说明
IN MXDRAWOCXHANDLE hOcx控件句柄
IN const CString& sToolBarName工具条名,在工具条定义文件(扩展名为mxt)中的第一行第五列
BOOL isShow为TRUE显示工具条,否则隐藏工具条

显示或隐藏工具条上某个按钮

C++接口MxDraw::HideToolBarControl

例如VC代码隐藏绘图工具栏上的绘线和绘矩形框按钮:

MxDraw::HideToolBarControl(m_hDrawOcx,_T("绘图工具"),_T("绘线,绘矩形框"));
COM接口_DMxDrawX::HideToolBarControl

例如VC代码隐藏绘图工具栏上的绘线和绘矩形框按钮:

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

禁用工具条上某个按钮

C++接口MxDraw::EnableToolBarControl

例如禁用打印按钮:

MxDraw::EnableToolBarControl(m_hDrawOcx,_T("打印图形"),FALSE);
COM接口DMxDrawX::EnableToolBarButton

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

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

工具条文件

控件MxDraw52.dll所在目录下,所有的mxt都是工具条定义文件,每个mxt文件就是一个工具条, 如下:

文件名说明
MxDraw-ToolBar.mxt常用工具条
MxDraw-ToolBar-Draw.mxt

绘图工具条

MxDraw-ToolBar-DrawParam.mxt特性工具条
MxDraw-ToolBar-Edit.mxt

编辑工具条

MxDraw-ToolBar-ET.mxt扩展工具条

把不需要的工具条文件删除,控件加载时就不会显示该工具条。

它是文本文件,用记事本打开编辑,格式如下:

“//”是文件中的注释。

文件中第一行是工具条文件头信息,每列内容如下:

如:("MxDrawToolBarFile" "MxDraw.dll" (214 211 206) "top" "常用工具" "Y")

第几列例程中的内容说明
1"MxDrawToolBarFile"工具条文件标志字符串
2

"MxDraw.dll"

工具条中按钮图片资源加载文件 注:后面图标默认从该dll中加载
3(214 211 206)在资源文件中,按钮图片的透明色
4

"top"

位置,可以是:top,left,bottom,right
5"常用工具"工具条名称 注:显示\隐藏函数会使用
6"Y"是否可以浮动,Y \N

文件中后面每行代表一个工具条按钮。

每列的内容如下:

如:("打开网上dwg文件" "打开网上dwg文件" "_OpenWebDwg" "IDB_OPENWEBDWG_BITMAP" "" "" "" "Y")

命令名称命令提示字符串命令名控钮在资源文件中的位图IDID类型资源文件名"命令ID"没有命定义时,是否不要加载工具按钮
"打开网上dwg文件""打开网上dwg文件"_OpenWebDwg" IDB_OPENWEBDWG_BITMAP """"""""Y"

命令名称:

"打开网上dwg文件"。

命令提示字符串:

"打开网上dwg文件"。

命令名:

C++使用McEdCommandStack :: addCommand增加,例如下:

acedRegCmds()->addCommand(_T("SysCmd"),

_T("OpenDwg"), _T("OpenDwg"), 1, OpenDwg);

COM接口:DMxDrawX::RegistUserCustomCommand注册命令

控钮在资源文件中的位图ID:

" IDB_OPENWEBDWG_BITMAP "。

ID类型:

目前控件内部使用,一般为空。

资源文件名:

1. 为空取默认资源文件名,该名称,需要去掉控件版本号如: MxDraw52.dll写成MxDraw.dll,控件会根据具体情况加上这个版本号。

2. 资源文件如是local:开头,表示是一个本地bmp文件,如:取mytoolbar.bmp做工具按钮图标:local:mytoolbar.bmp

3. 资源文件如是web:开头,表示是一个网络服务器上的bmp文件,如:取mytoolbar.bmp做工具按钮图标: web:mytoolbar.bmp

命令ID:

指定菜单点击后响应的命令事件id,如不为空,可以在控件的命令执行事件中响应菜单点击事件: ImplementCommandEvent。

没有命定义时,是否不要加载工具按钮:

"Y"

自定义按钮参考例子: samples\AspNet\AspNet\My-MxDraw-ToolBar.txt。

比如:按钮图标从本地bmp文件加载:

("自定义打文件按钮" "自定义打文件按钮" "Mx_OpenMxg" "" "" " local:mytoolbar.bmp")

比如:按钮图标从服务器bmp文件加载,bmp文件与工具条文件在同一个服务器目录中:

("自定义打文件按钮" "自定义打文件按钮" "Mx_OpenMxg" "" "" "web:mytoolbar.bmp")

从指定文件加载

控件默认是加载控件程所在目录下的所有mxt文件,下面介绍如何显示指定加载工具文件。

C++接口MXDRAWOCXHANDLE MxDraw::CreateMxDraw,第四个参数指定工具条加载文件
COM接口ToolBarFiles属性,它支持从服务器上加载工具文件,多个工具条文件用逗号隔开

帮助如下图:

iface1.png

如Js语言从服务器加载工具条文件, 工具条文件相对于当前网页:

<param name=" ToolBarFiles" 
value=" ./My-MxDraw-ToolBar.txt,MxDraw-ToolBar-DrawParam.mxt,MxDraw-ToolBar-Draw.mxt,MxDraw-ToolBar-Edit.mxt">

暂不加载工具条文件,如下:

<param name=" ToolBarFiles " value=" Empty.mxt">

显示加载工具条文件

控件支持在需要时,再动态加载工具条文件,接口说明如下:

C++接口MxDraw::LoadToolBar

例如:

void CTestDlg::OnBnClickedLoadtoolbarButton1()
    {
        CFileDialog openDlg(TRUE,_T("mxt"),NULL,
            OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
            _T("mxt(*.mxt) | *.mxt||"),AfxGetApp()->GetMainWnd());
        if(openDlg.DoModal() == IDOK)
        {
            CString sToolBarFilePath = openDlg.GetPathName();
            MxDraw::LoadToolBar(m_hDrawOcx,sToolBarFilePath);
        }
}

COM接口: _DMxDrawX::LoadToolBar

帮助文件抓图:

iface2.png

完整例子说明

在B/S模式下,一步一步的说一下,如何用户自定义工具条,并响应点击事件。 详细例子可以参考samples\AspNet\AspNet.sln, samples\AspNet\ My-MxDraw-ToolBar.txt。

1、新建菜单文件

新一个文本文件: My-MxDraw-ToolBar.txt,内容如下:

定一个按钮,按钮名为“自定义按钮“,图标是服务器上加载,图标名为mytoolbar.bmp,按钮点击执行命令,命令id为99。

("MxDrawToolBarFile" "MxDraw.dll" (214 211 206) "top" "MyTest工具" "Y")
("自定义按钮" "自定义按钮" "" "" "" " web:mytoolbar.bmp " "100")

2、把文件上传到服务器

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

3、Js程序里引用工具条

工具条文件放在当前网页目录下。

<param name="ToolBarFiles" value="./ My-MxDraw-ToolBar.txt ">

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

function DoCommandEventFunc(iCmd)
{
    if (iCmd == 100) {
        //该函数在mxcustom.js中 
        alert("工具条按钮点击");
}
}
document.getElementById("MxDrawXCtrl").ImplementCommandEventFun = DoCommandEventFunc;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文